首页 » Android » 广播和广播接收者

广播和广播接收者

原文 http://blog.csdn.net/ZXJ1111111/article/details/77970518

2017-09-13 22:20:40阅读(220)

Broadcasts

Android应用程序可以发送或接收来自Android系统和其他Android应用的广播消息,类似于发布-订阅设计模式。当发生感兴趣的事件时,这些广播就会被发送。例如,Android系统在发生各种系统事件时发送广播,比如系统启动或设备开始充电时。应用还可以发送定制的广播,例如,通知其他应用程序可能感兴趣的东西(例如,一些新数据已经被下载)。应用程序可以注册接收特定的广播。当广播被发送时,系统会自动将广播发送给那些订阅了特定类型的广播的应用。

System broadcasts

当系统发生各种系统事件时,系统会自动发送广播,例如当系统切换到飞机模式时。系统广播被发送到所有订阅该事件的应用程序。发送的广播消息采用Intent进行包裹,其中可以包括,action、extra等信息。详情见Intent。

备注:Android7.0及以上系统版本将不会再发送ACTION_NEW_PICTURE、ACTION_NEW_VIDEO广播。同时,在清单文件中注册CONNECTIVITY_ACTION广播接收者是无效的。从Android8.0(API级别26)开始,系统对已声明的广播接收者施加了额外的限制。如果你的应用程序的目标是API级别的26或更高,你就不能使用manifest来为大多数隐式广播(不是专门针对你的应用的广播)声明一个广播接收者。

Receiving broadcasts

通过注册广播接收者可以接收广播,注册广播接收者有两种方式:在清单文件中注册和Context—registered。。

清单文件注册广播接受者:当安装应用程序时,系统包管理器会注册广播接收者。然后,接收者就会成为你的应用的一个独立入口点,这意味着如果该应用目前还没有运行,系统就可以启动应用并发布广播。

代码示例:

<receiver android:name=".MyBroadcastReceiver"  android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
        <action android:name="android.intent.action.INPUT_METHOD_CHANGED"/>
    </intent-filter>
</receiver>

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示 »

按 Ctrl+D 键,
把本文加入收藏夹