您的位置:首页 > 移动开发 > Android开发

BroadcastReciever简单用法示例

2017-07-25 10:41 465 查看
&&.
生命周期非常短,在接受到广播时创建,onRecieve( … )方法执行完后销毁;
10s内onRecieve(…)方法未执行完,会出现ANR错误;

BroadcastReciever简单用法示例:

//发送广播
Intent intent = new Intent( xxx.this, xxx)
sendBraodcast( intent );
注:
1.可以为intent添加数据
2.可以不使用显式Intent,而是使用隐式设置目标,通过对应BroadcastReciever的<intent-filter>过滤来命中目标
例如:intent.setAction( "xxxx.xxx.xxx");

//自定义BroadcastReciever
public class TestReciever extends BroadcastReciever {
    public void onRevice( Context context, Intent intent ){
        //处理逻辑,可从intent中获取所传递数据
    }
}

1.静态注册
//BroadcastReciever 在AndroidManifest.xml文件中的注册
//可以不设置<intent-filter>,但是那样貌似就无法通过隐式Intent来命中该Reciver
<reciever android:name=".xxxx.TestReciever" >
    <intent-filter>
        ..........
    </intent-filter>
</reciever>

2.Activity或Service中动态注册
注意:如果组件销毁时,没有事先反注册,会抛出异常

//注册

MyReceiver receiver = new MyReceiver();  

          

IntentFilter filter = new IntentFilter();  

filter.addAction("android.intent.action.MY_BROADCAST");  

          

registerReceiver(receiver, filter);  

//在组件销毁时,反注册BroadcastReciever

@Override  

protected void onDestroy() {  

    super.onDestroy();  

    unregisterReceiver(receiver);  

}  

相关参考:      
Android broadcastReciever相关 - Lain丶T的博客 - 博客频道 - CSDN.NET
Android开发之BroadcastReceiver详解 - Android移动开发技术文章_手机开发 - 红黑联盟
基础总结篇之五:BroadcastReceiver应用详解 - Scott Liu - 博客频道 - CSDN.NET
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  笔记 android