前言:個人編程習(xí)慣而言,喜歡把廣播寫成一個單例,便于開發(fā)維護(hù),便于調(diào)用,便于管理。所以把曾經(jīng)的一個廣播助手類寫在這里,當(dāng)做范本,以后用到的話可以直接復(fù)制黏貼,稍作修改。廣播其實(shí)無非就是3步:
1、注冊registerReceiver;
2、發(fā)送sendBroadcast;
3、注銷unregisterReceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import java.util.HashMap;
public class DemoBrcHelper {
public static final String ACTION = "Aciton";
/**
* 廣播接收器
*/
private static HashMap<String, BroadcastReceiver> brHashMap;
/**
* 注冊廣播
*/
public static void register(Context ctx, String key, BroadcastReceiver br) {
if (null == brHashMap) {
brHashMap = new HashMap<>();
}
if (brHashMap.containsKey(key)) {
return;
}
brHashMap.put(key, br);
IntentFilter mfilter = new IntentFilter();
mfilter.addAction(ACTION);
ctx.registerReceiver(br, mfilter);
}
/**
* 注銷廣播
*/
public static void unregister(Context ctx, String key) {
if (null != brHashMap && brHashMap.containsKey(key)) {
ctx.unregisterReceiver(brHashMap.remove(key));
}
}
/**
* 發(fā)送廣播
*/
public static void sendBroadcast(Context ctx) {
Intent it = new Intent(ACTION);
// it.putExtra("what", what);
ctx.sendBroadcast(it);
}
}