静态定义的receiver接收broadcast intent
[ static broadcast receiver]
1. Activity 通过sendBroadcast()发送Intent数据
2. MyReceiver接收broadcast 所发送的Intent,并通过Intent提取参数
[ In Activity ]
在当前Activity类中,有如下代码片段,用于broadcast Intent
Intent intent = getIntent4Broadcast();
/*the same as *this.sendBroadcast(intent);*/
sendBroadcast(intent);public Intent getIntent4Broadcast(){Bundle b = new Bundle();b.putString("arg0","data1");Intent intent = new Intent();/* Receiver will filter the term * com.example.lab3.static_bc*/intent.setAction("com.example.lab3.static_bc");intent.putExtra("data", b);return intent;
}
[ Definite BroadcastReceiver ]
e.g. MyReceiver.java
extends BroadcastReceiver 重新定义onReceive接口
public class MyReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent){Bundle b = intent.getBundleExtra("data");// do something with b}
}
[ Manifest.xml ]
静态定义的BroadcastReceiver
需要在Manifest中注册Receiver
<application......>......//MyReceiver 是receiver的类名<receiver android:name="MyReceiver" ><intent-filter><action android:name="com.example.lab3.static_bc" ></action></intent-filter></receiver>......</application>
[ dynamic broadcast receiver ]
2. 在onCreate中发送broadcast, 定义的Receiver处理broadcast
[ 在Activity中,定义BroadcastReceiver ]
.../*definite inner class* 定义内部类 BroadcastReceiver*/public BroadcastReceiver bcr = new BroadcastReceiver(){ @Overridepublic void onReceive(Context context, Intent intent) { //do something with intent }};...
[ 在Activity中注册BroadcastReceiver ]
在哪个函数里register BroadcastReceiver,又在哪个函数里unregister呢?
参考:在发送broadcast之前,确保已经register了。
when click app-icon onCreate()->onStart()->onResume()
when click back_btn onPause()
可以在onStop()中写unregister, 在onCreate()和onStart()中register.
...
private IntentFilter filter = new IntentFilter();
...
//register receiver
filter.addAction("com.example.lab3.dynamic_bc");
registerReceiver(bcr, filter);
...
//unregister receiver
unregisterReceiver(bcr);
...
[ broadcast intent ]
Intent intent = initializeTheIntentForBroadcast();
sendBroadcast(intent)
静态定义的receiver接收broadcast intent相关推荐
- Android编程权威指南——broadcast intent
文章目录 前言 一 普通 intent 和 broadcast intent 二 接收系统 broadcast:重启后唤醒 1 创建并登记 standalone receiver 2 使用 recei ...
- Android8.0 静态receiver接收不到隐式广播 Background execution not allowed: receiving Intent
Android8.0的新特性值得注意一下,不然会出现很多莫名的问题... 后台执行限制 Android 8.0 为提高电池续航时间而引入的变更之一是,当您的应用进入已缓存状态时,如果没有活动的组件,系 ...
- broadcast receiver 接收设备重启意图( boot_completed Broadcast Intent)而重启定时器
一.Intents 和Broadcast Intents区别 二.StartupReceiver public class StartupReceiver extends BroadcastRecei ...
- java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.wifi.SCAN_RESULTS flg
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.nokia.wlanapp, PID: 18526 jav ...
- android 广播 event,无法接收android.intent.action.EVENT_REMINDER广播
我想编写一个在发生日历提醒时触发的应用程序.我意识到没有正式记录的方法,但我在日志中看到,当我的日历闹钟在我的手机(Droid X)上关闭时,AlertReceiver表明它已收到android.in ...
- 基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activity 后还能接收到串口数据吗?...
====================问题描述==================== RT:基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activ ...
- 一个spark receiver 或多个spark receiver 接收 多个flume agent
1. 利用一个spark receiver 接收多个flume agent String host = args[0];int port = Integer.parseInt(args[1]);Str ...
- 异常 java.lang.RuntimeException: Error receiving broadcast Intent
异常 java.lang.RuntimeException: Error receiving broadcast Intent 参考文章: (1)异常 java.lang.RuntimeExcepti ...
- openresty做静态资源服务器(接收图片上传)
分布式部署多服务部署,往往需要把图片单独分离出来,于是便想到了nginx的增强版openresty.nginx虽然可以作为静态资源服务器,接收图片上传.下载,但openresty作为nginx的升级版 ...
最新文章
- RocketMQ部署安装(非Docker安装)
- Everything Has Changed(HDU6354+圆交+求周长)
- Sublime Text for Mac 如何格式化代码
- NVDKC6416平台H.264算法优化
- 信息学奥赛一本通 1133:输出亲朋字符串 | OpenJudge NOI 1.7 05
- 超级详细的手写webpack4配置来启动vue2项目(附配置作用)
- java实例摘要(二)
- 免费素材下载:一套超棒的免费UI套件
- c# 程序调试出现“未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。”...
- h5 兑换商品 页面模版_H5商城静态页面(模板)
- 微信公众号自定义分享踩坑
- 菜鸟带你使用JieCaoMediaPlayer播放本地视频
- 聚合收款码怎么推广?
- word段落每行首字怎么对齐_Word段落首行左右缩进及五种对齐方式
- linux vim go语言,CentOS7系统基于Vim8搭建Go语言开发环境
- java dataframe agg_Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
- 过了MySQL 8 OCP(1Z0-908),交一下作业
- 美食推荐网站系统springboot+jsp
- rails console环境下显示AR sql
- [算法] 人工智能Java 坦克机器人系列
热门文章
- java面向对象练习题一
- Web前端-Vue.js必备框架(一)
- python OOP(2)
- mac配置jenkins遇到的问题及解决办法
- 记一次使用Dapper 进行的数据迁移和清洗工作
- 整合ssh model $$_javassist_13 cannot be cast to javassist.util.proxy.Proxy
- asp.net截取字符串方法
- Java集合框架之四大接口、常用实现类,java基础面试笔试题
- Python中append()与extend()的区别
- 《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...