Broadcast receiver 的使用

来源:互联网 发布:c语言实型取整 编辑:程序博客网 时间:2024/04/28 08:03
动态登记的broadcast receiver必须能够自我清除。通常,如果在启动生命周期方
法 中 登 记 了 receiver , 则 需 在 相 应 的 停 止 方 法 中 调 用 Context.unregisterReceiver(BroadcastReceiver)方法。
例 如。我们在onResume()方法里登记,而在onPause()方法里
撤销登记。同样地,如在onActivityCreated(...)方法里登记,则应在onActivityDestroyed()
里撤销登记。

需要注意的是,保留fragment中的onCreate(...)和onDestroy()方法的运用。设
备发生旋转时, onCreate(...)和onDestroy()方法中的getActivity()方法会返回不同的值。因
此,如想在Fragment.onCreate(Bundle)和Fragment.onDestroy()方法中实现登记或撤销登记,
应使用getActivity().getApplicationContext()方法。



使用动态broadcast receiver存在一个问题,即系统中的任何应用均可监听并触发我们的
receiver。

所以我们有多种方式可用于阻止未授权的应用闯入我们的私人领域。如果receiver声明在
manifest配置文件里,且仅限应用内部使用,则可在receiver标签上添加一个android:exported=
"false"属性。这样,系统中的其他应用就再也无法接触到该receiver。另外,也可创建自己的使
用权限。这通常通过在AndroidManifest.xml中添加一个permission标签来完成。

<permission android:name="com.kewensheng.photogallery.PRIVATE"        android:protectionLevel="signature"></permission>
<uses-permission android:name="com.kewensheng.photogallery.PRIVATE"/>
使用protection level签名,我们定义了自己的定制权限。自定义权限必须指定android:protectionLevel属性值。

下面看看protectionLevel有多少种



0 0