BroadcastReceiver的使用简介
2016-06-22 15:22
330 查看
尽量用代码进行BroadcastReceiver的注册,因为在用完之后方便关闭注册。 在AndroidManifest中进行注册后,不管改应用程序是否处于活动状态,都会进行监听,比如某个程序时监听 内存 的使用情况。所以关闭无必要的监听可以使程序更好。
首先声明:
定义继承BroadcastReceiver 的类
在fragment初次加载时,初始化intentFilter和broadcaster
下面当要用到广播时,进行广播的注册
查询完数据,在service处发送广播
这时onReceive方法回监听到匹配action的广播
最后在查询完数据之后我们需要关闭receiver不用再监听了
最后说明:QUERY_STATIONS_RESULT_INTENT这个在service里定义的全局静态变量是一个action,作为发送和接收的重要标识。
首先声明:
private QueryStationsResultReceiver mQueryStationsResultReceiver;//自定义的BroadcastReceiver private IntentFilter mQueryStationsResultIntentFilter;
定义继承BroadcastReceiver 的类
public class QueryStationsResultReceiver extends BroadcastReceiver { private boolean mResult; private String mErrorCode; private String mInfo; public QueryStationsResultReceiver() { mResult = false; } //此方法用来接收广播信息 @Override public void onReceive(Context context, Intent intent) {
在fragment初次加载时,初始化intentFilter和broadcaster
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //IntentFilger里的参数为action标识 mQueryStationsResultIntentFilter = new IntentFilter(QueryDataIntentService.QUERY_STATIONS_RESULT_INTENT); mQueryStationsResultReceiver = new QueryStationsResultReceiver();
下面当要用到广播时,进行广播的注册
//此处进行广播注册,两个参数分别为receiver和filter,将receiver和action绑定,用来指定接收哪个广播, getActivity().registerReceiver(mQueryStationsResultReceiver, mQueryStationsResultIntentFilter); //调用service进行数据查询 QueryDataIntentService.startActionQueryStations(getActivity(), username, passwd, mRegionId);
查询完数据,在service处发送广播
@Override protected void onHandleIntent(Intent intent) { Intent resultIntent = new Intent(QUERY_STATIONS_RESULT_INTENT);//设置intent的action sendBroadcast(resultIntent);//把intent发送
这时onReceive方法回监听到匹配action的广播
registerReceiver(mQueryStationsResultReceiver, mQueryStationsResultIntentFilter);//重点是这句注册时候指定了哪个action匹配哪个receiver
最后在查询完数据之后我们需要关闭receiver不用再监听了
getActivity().unregisterReceiver(mQueryStationsResultReceiver);
最后说明:QUERY_STATIONS_RESULT_INTENT这个在service里定义的全局静态变量是一个action,作为发送和接收的重要标识。
相关文章推荐
- php结合安卓客户端实现查询交互实例
- 安卓输入框被虚拟键盘挡住的问题(微信开发)
- Android安卓中循环录像并检测内存卡容量
- Eclipse导出安卓apk文件的图文教程
- 在安卓系统中插入表情到光标位置的代码详解
- Almp 安卓系统上搭建本地php服务器环境的步骤
- 谷歌被屏蔽后如何搭建安卓环境
- 安卓APP测试之使用Burp Suite实现HTTPS抓包方法
- 安卓(Android)聊天机器人实现代码分享
- 安卓(android)怎么实现下拉刷新
- Android中Fragment的生命周期与返回栈的管理
- 分享一个安卓的内置多种工具类的Activity
- 安卓系统中实现摇一摇画面振动效果的方法
- java实现获取安卓设备里已安装的软件包
- 安卓(Android)中如何实现滑动导航
- 六款值得推荐的android(安卓)开源框架简介
- 关于安卓so的兼容性的简单说明
- android(安卓)开源框架——六款【转】