是否可以使用簡單的代碼一次註冊它們? 或者他們必須一個一個地註銷嗎?取消註冊在活動中註冊的所有廣播接收機
4
A
回答
5
你必須一個一個去做。一個活動不應該有很多,如果有的話,所以我不希望這太繁瑣。
5
我知道這是一個古老的問題,但爲什麼你不使用broadcastreceivers拿起意圖,然後觸發所有接收器註銷? (想後的東西更準確比目前的答案提供)
在你把這個響應片段/活動:
public class PanicFragment extends Fragment {
IntentFilter killFilter = new IntentFilter("your.app.name.some.awesome.action.title");
BroadcastReceiver kill = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
context.unregisterReceiver(receiver); // The actual receiver you want to unreigster
context.unregisterReceiver(this); // The one you just created
}
};
(不要忘了在創建片段時,最初註冊的接收器/活動)
而在你的服務或其他活動或任何你想要的:
private void callThisToUnregisterAllYourReceivers(Context context) {
Intent killThemAll = new Intent();
killThemAll.setAction("your.app.name.some.awesome.action.title");
context.sendBroadcast(killThemAll);
}
我希望這在任何方式有幫助
0
我不會使用另一BroadcastReceiver
刪除其他廣播接收器。
以下是我在我的應用程序類補充說:
private static List<BroadcastReceiver> broadcastReceivers = new LinkedList<>();
public void addReceiver(BroadcastReceiver receiver, IntentFilter filter) {
mContext.registerReceiver(receiver, filter);
broadcastReceivers.add(receiver);
}
public void removeReceiver(BroadcastReceiver receiver) {
unregisterReceiver(receiver);
broadcastReceivers.remove(receiver);
}
public List<BroadcastReceiver> getAllReceivers() {
return broadcastReceivers;
}
public void removeAllReceivers() {
for (BroadcastReceiver receiver : getAllReceivers()) {
removeReceiver(receiver);
}
}
相關問題
- 1. 取消註冊通過艙單註冊的廣播接收機
- 2. 何時取消註冊onCreate中註冊的廣播接收器?
- 3. 何時何地我應該取消註冊廣播接收機?
- 4. 動態註冊廣播接收器
- 5. 註冊/註銷啓動廣播接收機
- 6. Android廣播接收器註冊問題
- 7. 我的註冊廣播接收機有什麼問題?
- 8. 廣播接收器註冊和註銷未在Android的
- 9. 註冊廣播接收機的最佳實踐?
- 10. 註冊廣播接收器對於接收到的SMS
- 11. 問題的廣播接收器(接收器未註冊錯誤)
- 12. 如何避免接收者在活動中註冊時廣播被浪費?
- 13. 檢查廣播接收機是否已經註冊?
- 14. 如何註冊這個廣播接收機
- 15. 在onReceive中取消註冊Android廣播接收器會引發「Receiver not registered」
- 16. 取消註冊RemotingConfiguration取消註冊衆所周知的類型
- 17. 廣播接收器的動作(intent-filter)的Dynmaic註冊
- 18. Android廣播接收器註冊清單時需要註銷嗎?
- 19. Android:從小部件註冊和註銷廣播接收器(ACTION_TIME_CLICK)
- 20. 在服務中註冊SCREEN_ON/SCREEN_OFF的廣播接收器
- 21. 何處取消註冊自定義控件中的廣播接收者
- 22. 內部類沒有註冊的廣播接收器
- 23. 如何從廣播接收器中取消註冊聽衆和停止服務
- 24. 活動註冊
- 25. 未在Fennec註冊的新廣播接收器
- 26. 動態註冊接收者
- 27. 遠程註冊/取消註冊BroadcatReceiver
- 28. DLL註冊和取消註冊
- 29. 當廣播接收機在服務中註冊時無法停止服務
- 30. Android廣播接收器:在java代碼vs清單中註冊接收器
這是最有效的答案,所以不知道爲什麼上面的一個是公認的答案。 – 2016-02-05 06:02:52