判斷廣播是否已注冊


在做Android項目時,有時候需要知道某個BroadcastReceiver是否已經注冊,從而決定是發送廣播讓Receiver處理,還是通過其他方式處理。
那么,如何判斷某個廣播接收者BroadcReceiver是否已經注冊了呢?

PackageManager 類中提供了 List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) 方法來查詢Intent對應的所有廣播接收者。

使用舉例:
    Intent intent = new Intent();
    intent.setAction("com.xxx.powersaving.INSTALLAPP");
    intent.putExtra("path", apkPath);  
    PackageManager pm = context.getPackageManager();
    List<ResolveInfo> resolveInfos = pm.queryBroadcastReceivers(intent, 0);
    if(resolveInfos != null && !resolveInfos.isEmpty()){
        //查詢到相應的BroadcastReceiver
    }  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM