Android--广播

本文介绍了Android中广播和广播接收器的工作原理,包括静态广播、动态广播和有序广播的注册与发送。通过实例展示了如何创建BroadcastReceiver,以及如何在不同情况下发送和接收广播,特别强调了静态注册在Android 8.0+的注意事项。还提到了一些常见的系统广播事件,如短信接收、开机完成等,并提供了相应的代码示例。
摘要由CSDN通过智能技术生成

理解广播与广播接收器
广播事件处理属于 系统级的事件处理(一般事件处理属于View级的事件处理)

Context

  • sendBroadcast(Intent intent):发送广播
  • sendOrderedBroadcast(Intent intent):发送有序广播
  • (动态注册)
  • registerReceiver(receiver,intentFilter):注册广播接收器
  • unRegisterReceiver(receiver):解注册广播接收器

BroadcastReceiver

  • onReceive(Context context,Intent intent):接收到广播的回调
  • abortBroadcast():中断广播的继续传播
  • boolean isOrderedBroadcast():判断是否是有序广播

常见的系统广播

  • 1,收到短信广播:android.provider.Telephony.SMS_RECEIVED
  • 2,开机完成广播:Intent.ACTION_BOOT_COMPLETED
  • 3,应用被卸载广播:Intent.ACTION_PACKGE_REMOVED
  • 4,手机锁屏:Intent.ACTION_SCREEN_OFF
  • 5,手机开屏:Intent.ACTION_SCREEN_ON

注册广播接收器

  • 方式一:配置文件注册(静态注册)
         <receiver android:name="com.example.mybroadcast.MyReceiver1">
              <intent-filter>
                  <action android:name="com.example.mybroadcast.MyReceiver1.action"/>
              </intent-filter>
         </receiver>

静态注册的话,要注意android8.0以上要加入(不然会失效):

intent.setPackage(getPackageName());
  • 方式二:硬编码注册(动态注册)
  MyBroadcastReceiver receiver=new MyBroadcastReceiver(action);
  IntentFilter filter=new IntentFilter(action);
  registerReceiver(receiver,filter);

发送静态广播

我们接下来要做的是,一个进程发送一个广播给另一进程接收广播。
嗯,今天很奔溃,看着视频学习,但是代码打错一点点,所以就搞了好久,所以在你们在自己写的时候,代码不要写错!代码不要写错!代码不要写错!重要的事情说三遍。

好了,进入正题,既然我们要跨进程的广播,那我们就必须要创建两个应用。

首先我们进入第一个应用(广播接收器)要静态的注册广播。

写一个类继承BroadcastReceiver。建议不要创建一个类,然后自己写继承。可以使用便捷一点而且不容易写错的方法:

1,File->new->Other->Broadcast Receiver
2,在要接收广播的应用文件上右键,重复第一步的步骤。

/**
 * 静态注册广播
 */
public class MyReceiver extends BroadcastReceiver {
   

    public MyReceiver
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值