【App】广播

广播类型
    |
    ----- 标准广播。所有的广播接收者同一时刻接收到广播消息,效率高,不能截断。
    |
    ----- 有序广播。顺序接收,依次传递,可被截断。


注册广播
    |
    ----- 静态注册。 即在AndroidManifest.xml中注册,
    |
    ----- 动态注册。 即在运行代码流程中注册。
动态:
    1.创建一个广播接收者MyBroadcastReceiver类继承BrocastReceiver类, 重写onReceive方法

    2.
         private MyBroadcastReceiver myReceiver;
         IntentFilter intentFilter = new IntentFilter();
         intentFilter.addAction("android.AAA.BBB");
         myReceiver = new MyBroadcastReceiver();
         registerReceiver(myReceiver, intentFilter);

    onDestroy()
         unregisterReceiver(myReceiver);

静态:
    AndroidManifest.xml
          <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
          <intent-filter>
广播的发送:
发送标准广播:
        Intent intent = new Intent("com.example.broadcast.MY_BROADCAST");
        sendBroadcast(intent);

发送有序广播:
        AndroidManifest.xml
            <intent-filter android:priority="100">
                <action anroid:name="com.example.broadcast.MY_BROADCAST" />
            </intent-filter>
    广播接收者指定了优先级,优先级高的先收到广播。


-------------------
截断传播
    abortBrocast();
----------------------- 上述广播是系统广播,可以被其他应用获取---------------------

本地广播,只在本应用里面发出

        private LocalBroadcastManager localBrocastManager;
        
        localBrocastManager = LocalBrocastManager.getInstance(this);
               
        Intent intent = new Intent("aaa.bbb.LOCAL_BROADCAST");
    
        localBrocastManager.sentBrocast(intent);

    
    注册广播接收者:
        IntentFilter intentFilter = new IntentFilter();
        
        intentFilter.addAction("aaa.bbb.LOCAL_BROADCAST");

        LocalReceiver localReceiver = new LocalReceiver();

        localBroadcastManager.registerReceiver(lcoalReceiver, intenFilter);
---- end -------- 还是很好理解的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android跨app广播接收器是指在Android系统中,一个应用程序可以发送广播,而另一个应用程序可以注册并接收该广播。 实现跨app广播接收器需要以下步骤: 1. 发送广播:在发送广播的应用程序中,需要创建一个Intent对象,并使用setAction()方法为其设置一个自定义的Action,用于标识该广播。然后,使用sendBroadcast()方法发送该广播。例如: ```java Intent intent = new Intent(); intent.setAction("com.example.MY_CUSTOM_ACTION"); sendBroadcast(intent); ``` 2. 注册接收器:在接收广播的应用程序中,需要创建一个BroadcastReceiver对象,并使用IntentFilter对象来过滤想要接收的广播。然后,使用registerReceiver()方法注册该广播接收器。例如: ```java BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // 处理接收到的广播 } }; IntentFilter filter = new IntentFilter(); filter.addAction("com.example.MY_CUSTOM_ACTION"); registerReceiver(receiver, filter); ``` 在注册广播接收器时,需要注意在AndroidManifest.xml文件中声明接收器的权限,以便允许不同应用程序之间的广播通信。 需要注意的是,发送广播和接收广播的应用程序应该在同一个设备上安装和运行,并且具有相应的权限。否则,跨app广播接收器可能无法正常工作。 总之,跨app广播接收器是Android为了实现不同应用程序之间的通信而提供的一种机制,使应用程序能够发送广播并让其他应用程序接收并处理该广播

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值