四大组件之广播(Broadcast)
广播简介
Android 应用与 Android 系统和其他 Android 应用之间可以相互收发广播消息,这与发布-订阅设计模式相似。这些广播会在所关注的事件发生时发送。举例来说,Android 系统会在发生各种系统事件时发送广播,例如系统启动或设备开始充电时。再比如,应用可以发送自定义广播来通知其他应用它们可能感兴趣的事件(例如,一些新数据已下载)。
应用可以注册接收特定的广播。广播发出后,系统会自动将广播传送给同意接收这种广播的应用。
一般来说,广播可作为跨应用和普通用户流之外的消息传递系统。但是,您必须小心,不要滥用在后台响应广播和运行作业的机会,因为这会导致系统变慢,具体如以下视频所述。
广播总共分为以下几类:
- 普通广播(Normal Broadcast)
- 系统广播(System Broadcast)
- 有序广播(Ordered Broadcast)
- 粘性广播(Sticky Broadcast)
- App应用内广播(Local Broadcast)
普通广播(Normal Broadcast)
最常用的广播形式,即开发者自身定义intent的广播。
使用步骤:
- 自定义一个广播接收者。
- 注册广播
- 发送广播
静态注册
1.创建一个BroadcastReceiver类
package com.example.testapp.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.example.testapp.constant.TestConstant;
public class TestBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "TestBroadcastReceiver";
public TestBroadcastReceiver() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
//判断接收广播的名,TestConstant.ACTION_TEST_BROADCAST是自定义广播的字符串
if(intent.getAction().equals(TestConstant.ACTION_TEST_BROADCAST)) {
Log.i(TAG, "received broadcast i