安卓学习笔记六(广播接收者创建、静态注册、动态注册、发送自定义广播信息)

目录

一、怎么设置广播接收者?
二、收到广播后怎么办?
三、怎么设置和发送广播信息?

在Android系统中,广播是一种运用在组件之间传递消息的机制,例如电池过低时会发送一条提示广播。那么我们如何去接收这条信息呢?如果要接收并过滤广播中的消息,我们就需要用到BroadcastReceiver(广播接收者),在安卓学习笔记一种我们提过Activity、Service、ContentProvider、BroadcastReceiver是四大组件,通过广播接收者可以监听系统中的广播消息,实现不同组件之间的通信。
1、广播是不同组件间进行通信的一种机制,广播可分为无序广播和有序广播
2、一个“活的”接收者接收特定的广播消息并作出回应,主要由intent-filter,action来实现,是不是觉得似曾相识呢?我们在隐式intent的时候也用到过
3、receiver在AndroidManifest.xml中以标签显示
4、receiver可以被activity或者service注册
5、receiver有onReceive()回调方法
可能你在看到这儿的时候有很多的问号,那么请带着疑问接着看下去,你会找到答案的

一、怎么设置广播接收者?

如我们文章开头提到的系统发出一条电池电量过低的广播消息,那我们要怎么样才能接收到这条信息呢?就好比《爱情公寓》里曾小贤主持的电台,我们怎么样才能接收到这个节目呢?就是要把我们的收音机调到对应的频道上。
同理,我们也需要把广播接收者注册一下,相当于“我们订阅了这个频道”,这样我们就可以接收到“这个频道的消息”了。以接收系统广播“电量过低”为例:
1.动态注册
特点:

  • 动态注册是创建一个广播接收者,并在Activity中通过代码进行注册。
  • 动态注册的广播接收者是否被注销依赖于注册广播的组件,如果在MainActivity中注册,那么MainActivity被销毁时,广播接收者也随之被注销。
    如果我们要接收程序或者系统发出的广播消息,我们首先要创建一个广播接收者,我们可以在程序的包中创建一个Receiver3类继承自BroadcastReceiver,并重写onReceive()方法,这里Receiver3是我创建的广播接收者的名称,建好的文件中如下所示:
    (Receiver3.java):
package com.example.receivebroadcast;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class Receiver3 extends BroadcastReceiver {
   

    @Override
    public void onReceive(Context context, Intent intent) {
   
     
    }
}

创建广播接收者完成后,我们需要在MainActivity中注册广播接收者Receiver3
(MainActivity.java):

ackage com.example.receivebroadcast;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
   
    private Receiver3 receiver3
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值