在做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
}
本文轉自 一點點征服 部落格園部落格,原文連結:http://www.cnblogs.com/ldq2016/p/6955679.html,如需轉載請自行聯系原作者