1.静态注册,在minifest文件中

<receiver android:name=".BroadcastReceiverDemo" >
<intent-filter>
<action android:name="com.simware.BroadcastReceiverDemo" >
</action>
</intent-filter>
</receiver>
注册完之后即可以发送广播,使用Context.sendBroadcast()、Context.sendOrderedBroadcast()或者Context.sendStickyBroadcast()来实现
接受广播使用代码:
public class BroadcastReceiverDemo extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String msg = intent.getStringExtra("message");
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
}
} 发送广播:
Intent mIntent = new Intent("com.simware.BroadcastReceiverDemo");
mIntent.putExtra("message", "hahahahaha");
sendBroadcast(mIntent);

2.动态注册,在代码中注册解注册

registerReceiver(BroadcastReceiver receiver, IntentFilter filter)

unregisterReceiver(BroadcastReceiver receiver)

在Activity中代码注册广播建议在:onResume()中注册(也可在onCreate里面注册);

在Activity中代码注销广播建议在:onPause()中注销(也可在onDestory里面注销)

如果一个BroadcastReceiver用于更新UI(User Interface),那么通常会使用这种方法进行注册,在Activity启动的时候进行注册,在Activity不可见后取消注册。不过应用内的更建议使用LocalBroadcastReceiver

区别:

在AndroidManifest中进行注册后,不管该应用程序是否处于活动状态,都会进行监听,比如某个程序是监听 内存 的使用情况的,当在手机上安装好后,不管该应用程序是处于什么状态,都会执行改监听方法中的内容。

在代码中进行注册后,当应用程序关闭后,就不再进行监听。如果是在Activity中进行的注册和解注册,则生命周期是跟随该Activity的。我们知道,应用程序是否省电,决定了该应用程序的受欢迎程度,所以,对于那些没必要在程序关闭后仍然进行监听的Receiver,在代码中进行注册,无疑是一个明智的选择。

BroadcastReceiver的两种注册方式和使用的更多相关文章

  1. Android中BroadcastReceiver的两种注册方式(静态和动态)详解

    今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...

  2. Android面试,BroadCastReceiver的两种注册方式的异同

    在Android手机应用程序中开发中,需要用到BroadcastReceiver来监听广播的消息.在自定义好BroadcastReceiver ,需要对其进行注册,注册有两种方法: 一种是在代码当中注 ...

  3. BroadcastReceiver的两种注册方式之------动态注册

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  4. BroadcastReceiver的两种注册方式之------静态注册

    activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  5. SparkSQL UDF两种注册方式:udf() 和 register()

    调用sqlContext.udf.register() 此时注册的方法 只能在sql()中可见,对DataFrame API不可见 用法:sqlContext.udf.register("m ...

  6. Android 两种注册、发送广播的区别

    前言:前面文章记录了Service的使用,这次来记录另一个四个组件之一的BroadcastReceiver.主要介绍两种发送和注册广播的区别. BroadcastReceiver广播接收者用于接收系统 ...

  7. Web APi之认证(Authentication)两种实现方式【二】(十三)

    前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...

  8. Android 广播机制(两种注册方法)与中断广播

    两种注册类型的区别是: 1)第一种不是常驻型广播,也就是说广播跟随activity的生命周期.注意: 在activity结束前,移除广播接收器. 2)第二种是常驻型,也就是说当应用程序关闭后,如果有信 ...

  9. 转 Web APi之认证(Authentication)两种实现方式【二】(十三)

    前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再废叙述废话. 序言 对于所谓的认证说到 ...

随机推荐

  1. BZOJ4836 二元运算(分治FFT)

    设A(n)为a中n的个数,B(n)为b中n的个数.如果只考虑加法显然是一个卷积,减法翻转一下也显然是一个卷积. 问题在于两者都有.容易想到分开处理.那么可以考虑分治.即对于值域区间[l,r],分别计算 ...

  2. HTM L百度地图API 自定义工具地图实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 洛谷 P1054 等价表达式 解题报告

    P1054 等价表达式 题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的 ...

  4. luogu1073 最优贸易 (tarjan+dp)

    tarjan缩点,然后按照拓扑序,做1号点能到达的点的答案具体做法是对每个点记一个min[i],max[i],vis[i]和ans[i]做拓扑序的时候,假设在从u点开始做,有边u到v,如果vis[u] ...

  5. Jenkins中使用Azure Powershell连接Service Fabric报错not recognized的原因与解决办法

    一.使用背景 在涉及Azure service Fabric的自动化应用场景中,依赖于Service Fabric的Azure Powershell cmdlets,我们可以使用Jenkins能实现c ...

  6. Android微信数据导出

    在Nexus 5(Android 4.4)+WeChat 5.4,和Nexus 5(Android 5.0)+Wechat 6.0上测试可用. 获取加密的sqlite3数据库EnMicroMsg.db ...

  7. bzoj3698 XWW的难题

    题意:给你个n * n的实数矩阵,你需要把它中的每个数上/下取整,并满足如下条件: 每行最后一个数等于前面的和. 每列最后一个数等于前面的和. n行n列的那个元素始终为0,不予考虑. 求满足条件下矩阵 ...

  8. A1104. Sum of Number Segments

    Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For exam ...

  9. JavaSE学习总结(十九)—— Java Web 综合应用(JSP、Servlet、IDEA、MySQL、JUnit、AJAX、JSON)

    一.使用Servlet+JDBC+MySQL+IDEA实现商品管理 1.1.创建项目 打开IntelliJ IDEA开发工具.点击Create New Project创建一个新的Web项目 选择Jav ...

  10. Kafka配置文件server.properties(三个版本)

    前言 其实每个版本都有些许改动,只不过改动大小而已,但是网上的教程都真的太老了,其实更新一下也费不了多少时间 0.9.0 # Licensed to the Apache Software Found ...