BroadcastHelper廣播助手類--范本

前言:個人編程習(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);
    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容