Android开发

1-3 Broadcast基础全纪录

2019-12-12  本文已影响0人  Shimmer_

[TOC]

Broadcast.png

1. 什么是Broadcast

2. Broadcast使用

Android中的广播使用更加灵活,可以自行对感兴趣的广播内容进行注册,这样就只会接受到自己关心的内容

2.1 广播

类型
广播的发送

2.2 广播接收器

定义广播接收器
//继承BroadcastReciver 重写onReccive方法
public class MyReceiver extends BroadcastReceiver {
    private static final String TAG = "MyReceiver";
    public static final String ACTION_ONE = "com.broadcast.custommsg.one";
    public static final String ACTION_TWO = "com.broadcast.custommsg.two";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (ACTION_ONE.equals(intent.getAction())) {
            Toast.makeText(context,TAG+"onReceive: " + "ACTION_ONE",Toast.LENGTH_SHORT).show();
        }
        if (ACTION_TWO.equals(intent.getAction())) {
            Toast.makeText(context,TAG+"onReceive: " + "ACTION_TWO",Toast.LENGTH_SHORT).show();
        }
        //用于截断有序广播的传递
        abortBroadcast();
    }
}
广播注册

2.3 本地广播的使用

本地广播是为了解决广播的安全性问题,确保发出的广播只能在应用的内部进行传递,同时广播接收器也只能接收本应用程序的广播

本地广播的使用与全局广播类似,只不过由LocalBroadcastManager来控制广播的注册、注销及发送。本地广播因使用时程序已启动,所以不需要也不能使用静态注册

LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(this);
IntentFilter filter = new IntentFilter();
String action = "com.j.local.b";
filter.addAction(action);
localReceiver = new LocalReceiver();
broadcastManager.registerReceiver(localReceiver, filter);
broadcastManager.sendBroadcast(new Intent(action));
// LocalBroadcastManager.getInstance(this).unregisterReceiver(localReceiver);

 class LocalReceiver extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {
        
    }
}
上一篇 下一篇

猜你喜欢

热点阅读