Android中当多个应用都接收同一个广播时,会导致很多系统进程同时开启,这会导致系统卡顿。有了ssp我们可以定向的接收或发送某一特定广播达到优化系统的效果。

接收或发送定向广播需要用到android:ssp属性用于匹配URI,ssp代码“scheme-specific part”,意思是代表的东西都在scheme之后出现,如URI是“http://example.com.a”,可以分成scheme部分"http"和ssp部分"//example.com.a"。这里需要特别注意例子中的ssp部分是包含"//"的。

ssp相关:

android:ssp全匹配

android:sspPrefix前缀匹配

android:sspPattern模式匹配

1.接收安装某一特定应用的系统广播

注册方式一:

android:ssp="com.tencent.mm"/>

注册方式二:

IntentFilter filter = new IntentFilter();

filter.addAction(Intent.ACTION_PACKAGE_ADDED);

filter.addDataScheme("package");

// PatternMatcher.PATTERN_LITERAL相当于ssp

// PatternMatcher.PATTERN_PREFIX相当于sspPrefix

// atternMatcher.PATTERN_SIMPLE_GLOB相当于sspPattern

filter.addDataSchemeSpecificPart("com.tencent.mm",

PatternMatcher.PATTERN_LITERAL);

2.定向发送和接收自定义广播

2.1发送

String RECEIVE_MSG_ACTION = "com.example.sspreceiver.msg_action";

Button button1 = (Button) findViewById(R.id.button1);

button1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent();

intent.setAction(RECEIVE_MSG_ACTION);

Uri data = Uri.parse("msg://com.example.ssp1");

intent.setData(data);

MainActivity.this.sendBroadcast(intent);

}

});

Button button2 = (Button) findViewById(R.id.button2);

button2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(RECEIVE_MSG_ACTION, Uri

.parse("msg:com.example.ssp2"));

MainActivity.this.sendBroadcast(intent);

}

});

2.2接收

android:process=":ssp1">

android:sspPrefix="//com.example.ssp1"/>

android:process=":ssp2">

android:ssp="com.example.ssp2"/>

上面注册广播时使用多进程是为了模拟跨应用接收定向广播的。

android系统广播 定向广播,Android之定向广播相关推荐

  1. android文档来电广播,Android系统广播(来电示例)系统广播大全

    电话广播 打开 AndroidManifest.xml 配置获取响铃.电话的权限. 在 application 节点内,添加,广播接受配置 xml Java 代码 建立一个类,继承BroadcastR ...

  2. android 增加一条广播,Android中BroadcastReceiver广播使用及注意点

    Android中的广播用途很广,是四大组件之一.在android中可以看到它的各种应用,从系统发出的广播,用户自定义的广播等. 这里详细记录下广播的分类以及使用方法. 广播,是由两方面组成一个流程:广 ...

  3. android无法接收短信广播,Android BroadcastReceiver接收收到短信的广播

    一.知识介绍 1.broadcastReceiver是广播接受者,四大组件之一. 2.Android中内置了很多系统级别的广播,可以在应用程序中得到各种系统的状态信息. 3.使用场景: ①当手机没有电 ...

  4. Broadcast广播-Android

    一.Broadcast 1.定义 在 Android 中,Broadcast 是一种在应用程序之间传输信息的机制,要发送的广播内容是一个 Intent,这个 Intent 中可以携带我们要传送的数据. ...

  5. 8.Android学习之消息、通知、广播与闹钟(二)

    目录 8.消息.通知.广播与闹钟(二) 3.使用Notification类在状态栏上显示通知 4.BroadcastReceiver类的使用 4-1.BroadcastReceiver类简介 4-2. ...

  6. android系统休眠发广播,Android - BroadcastReceiver

    BroadcastReceiver BroadcastReceiver,广播接收者,用来接收系统和应用的广播,并做出相应的处理,如电量过低时提示用户充电等: BroadcastReceiver 是 A ...

  7. android 收不到短信广播,android – 短信广播接收器没有得到textmessage

    我做了什么 大家好,我正在创建一个短信广播接收器,我刚刚用本教程建立了一个:Broadcasttutorial.在我完成代码之后,我更新了我的Manifest.之后我将短信从我的另一部手机发送到我的手 ...

  8. 【Android 电量优化】JobScheduler 源码分析 ( JobServiceContext 源码分析 | 闭环操作总结 | 用户提交任务 | 广播接收者接受相关广播触发任务执行 )★

    文章目录 一.JobServiceContext 引入 二.JobServiceContext 源码分析 三.用户在应用层如何使用 JobScheduler 四.用户提交任务 五.广播接收者监听广播触 ...

  9. 【Android 电量优化】电量优化 ( 充电状态获取 | 主动获取充电状态 | 广播接受者监听充电状态 | 被动获取充电状态 | 注册空广播接受者获取历史广播 )

    文章目录 一.获取充电状态 二.被动获取充电状态 三.主动获取充电状态 参考 Google 官方文档 : 优化电池续航时间 一.获取充电状态 在应用中执行某些操作 , 如软件云端备份 , 从服务器端获 ...

最新文章

  1. 前端动画优化及性能检测
  2. python什么是关键字参数_Python 函数 (关键字参数)
  3. CANVAS运用-对图片的压缩上传(仅针对移动浏览器)
  4. 界面设计方法 (2) — 3.卡式, 列表, 主细表, 树形, 页签
  5. redirect重定向后https变成了http如何解决
  6. 《 Linux的安装和入门 》
  7. BZOJ2654 Tree
  8. L1-027 出租 (20 分)—团体程序设计天梯赛
  9. 16. Zend_Controller
  10. 今天8月5号 2011-08-05
  11. CSS 颜色代码大全
  12. GSM、TD-SCDMA、WCDMA、LTE
  13. PON光模块相关知识
  14. HDFS源码解析---Balancer
  15. web scraper
  16. 福特汉姆大学计算机科学专业,福特汉姆大学研究生学院
  17. C# 阿里云短信接口调用(不使用SDK,单文件完成)
  18. 公钥加密与PKI实验
  19. 机器学习里的贝叶斯基本理论、模型和算法
  20. JavaScript 随机正数或负数

热门文章

  1. 受疫情影响:中国智能手机市场Q1出货量下滑严重
  2. 拼多多:有营销号“骗粉博出位” 将用法律武器维权
  3. 孙燕姿发博求推荐电动汽车,众多车企官微、老总亲自“上门”推销...
  4. 京东数科公布11.11一小时战报:白条交易额10秒破亿
  5. 搭载骁龙865+量产一亿像素!小米MIX4今年无望了
  6. 苹果AirPods有望在年末推出新款产品 或将支持防水功能
  7. 全志R40 串口485 控制操作
  8. 对一个带小数的数进行四舍五入取整
  9. 史上最详细JVM笔记
  10. android canvas 清空画布,清除canvas画布内容(点擦除+线擦除)