android系统广播 定向广播,Android之定向广播
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之定向广播相关推荐
- android文档来电广播,Android系统广播(来电示例)系统广播大全
电话广播 打开 AndroidManifest.xml 配置获取响铃.电话的权限. 在 application 节点内,添加,广播接受配置 xml Java 代码 建立一个类,继承BroadcastR ...
- android 增加一条广播,Android中BroadcastReceiver广播使用及注意点
Android中的广播用途很广,是四大组件之一.在android中可以看到它的各种应用,从系统发出的广播,用户自定义的广播等. 这里详细记录下广播的分类以及使用方法. 广播,是由两方面组成一个流程:广 ...
- android无法接收短信广播,Android BroadcastReceiver接收收到短信的广播
一.知识介绍 1.broadcastReceiver是广播接受者,四大组件之一. 2.Android中内置了很多系统级别的广播,可以在应用程序中得到各种系统的状态信息. 3.使用场景: ①当手机没有电 ...
- Broadcast广播-Android
一.Broadcast 1.定义 在 Android 中,Broadcast 是一种在应用程序之间传输信息的机制,要发送的广播内容是一个 Intent,这个 Intent 中可以携带我们要传送的数据. ...
- 8.Android学习之消息、通知、广播与闹钟(二)
目录 8.消息.通知.广播与闹钟(二) 3.使用Notification类在状态栏上显示通知 4.BroadcastReceiver类的使用 4-1.BroadcastReceiver类简介 4-2. ...
- android系统休眠发广播,Android - BroadcastReceiver
BroadcastReceiver BroadcastReceiver,广播接收者,用来接收系统和应用的广播,并做出相应的处理,如电量过低时提示用户充电等: BroadcastReceiver 是 A ...
- android 收不到短信广播,android – 短信广播接收器没有得到textmessage
我做了什么 大家好,我正在创建一个短信广播接收器,我刚刚用本教程建立了一个:Broadcasttutorial.在我完成代码之后,我更新了我的Manifest.之后我将短信从我的另一部手机发送到我的手 ...
- 【Android 电量优化】JobScheduler 源码分析 ( JobServiceContext 源码分析 | 闭环操作总结 | 用户提交任务 | 广播接收者接受相关广播触发任务执行 )★
文章目录 一.JobServiceContext 引入 二.JobServiceContext 源码分析 三.用户在应用层如何使用 JobScheduler 四.用户提交任务 五.广播接收者监听广播触 ...
- 【Android 电量优化】电量优化 ( 充电状态获取 | 主动获取充电状态 | 广播接受者监听充电状态 | 被动获取充电状态 | 注册空广播接受者获取历史广播 )
文章目录 一.获取充电状态 二.被动获取充电状态 三.主动获取充电状态 参考 Google 官方文档 : 优化电池续航时间 一.获取充电状态 在应用中执行某些操作 , 如软件云端备份 , 从服务器端获 ...
最新文章
- 前端动画优化及性能检测
- python什么是关键字参数_Python 函数 (关键字参数)
- CANVAS运用-对图片的压缩上传(仅针对移动浏览器)
- 界面设计方法 (2) — 3.卡式, 列表, 主细表, 树形, 页签
- redirect重定向后https变成了http如何解决
- 《 Linux的安装和入门 》
- BZOJ2654 Tree
- L1-027 出租 (20 分)—团体程序设计天梯赛
- 16. Zend_Controller
- 今天8月5号 2011-08-05
- CSS 颜色代码大全
- GSM、TD-SCDMA、WCDMA、LTE
- PON光模块相关知识
- HDFS源码解析---Balancer
- web scraper
- 福特汉姆大学计算机科学专业,福特汉姆大学研究生学院
- C# 阿里云短信接口调用(不使用SDK,单文件完成)
- 公钥加密与PKI实验
- 机器学习里的贝叶斯基本理论、模型和算法
- JavaScript 随机正数或负数
热门文章
- 受疫情影响:中国智能手机市场Q1出货量下滑严重
- 拼多多:有营销号“骗粉博出位” 将用法律武器维权
- 孙燕姿发博求推荐电动汽车,众多车企官微、老总亲自“上门”推销...
- 京东数科公布11.11一小时战报:白条交易额10秒破亿
- 搭载骁龙865+量产一亿像素!小米MIX4今年无望了
- 苹果AirPods有望在年末推出新款产品 或将支持防水功能
- 全志R40 串口485 控制操作
- 对一个带小数的数进行四舍五入取整
- 史上最详细JVM笔记
- android canvas 清空画布,清除canvas画布内容(点擦除+线擦除)