Android广播(笔记)

在Android程序中使用广播,有两种注册广播接收器的方式,区别如下:

第一种方式:在AndroidManifest.xml文件中注册

<receiver android:name="MyReceiver" >
<intent-filter >
<action android:name="com.and.android.intent.action.TEST" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>

这里注册了自己的广播接收器,可以接收两种类型的广播,第一个是自定义的动作,第二个是系统的,当WIFI状态改变。都是为了测试,随便添加了一个。

这种注册方式是常驻型,当应用程序关闭后(没有卸载前),如果有相应广播信息来,程序也会被系统调用自动运行。 

第二种方式:在程序代码中动态注册

BroadcastReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);//这里添加系统广播,当屏幕关闭的时候发送
filter.addAction(ACTION_INTENT_TEST);
registerReceiver(receiver, filter);

这种注册方式不是常驻型,广播接收器跟随Activity的生命周期。注意在Activity结束前解除注册广播接收器

unregisterReceiver(receiver);

 假设忘记解除注册,系统中也不会保留。即当有广播来,程序也不会处理。

posted @   And.He  阅读(875)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示