分享

BroadcastReceiver

 Library_for_hj 2016-07-18
当在代码中实时new 一个BroadcastReceiver时,需要为其register对应的intentfilter。根据Context.java,下面本文将介绍registerReceiver和registerReceiverAsUser两个方法的区别。

---registerReceiver

此方法有下面两种参数形式:

public abstract Intent registerReceiver(@Nullable BroadcastReceiver receiver, IntentFilter filter);
public abstract Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter, 
@Nullable String broadcastPermission, @Nullable Handler scheduler);

其中,各个参数的含义如下:
receiver:处理broadcast的BroadcastReceiver
filter:用来过滤出此此receiver将处理的Broadcast的类型
broadcastPermission:broadcaster在发送某种intent的广播时所需要的权限,如果为空,则不需要权限。
scheduler:标识着接受该类Intent的广播的线程,如果为空,则表示进程的主线程作为接收方。

---registerReceiverAsUser

public abstract Intent registerReceiverAsUser(BroadcastReceiver receiver,
            UserHandle user, IntentFilter filter, @Nullable String broadcastPermission,
            @Nullable Handler scheduler);
此法跟上面的registerReceiver作用相同,只是要向拥有特定id的user发送broadcast。
相比较上面的registerReceiver方法,本方法多了一个user的UserHandler参数,表示接收broadcast的user id。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多