2012-02-22 89 views
0

我有一個Android庫,需要一個BroadcastReceiver,它在對象構造函數中註冊。它根據不斷變化的互聯網狀態對該對象執行操作。但是,我遇到了關於泄露的接收器的錯誤消息,因爲我不稱之爲取消註冊。從Android上的非活動取消註冊BroadcastReceiver

當我沒有關於活動何時結束的信息時,如何以及在哪裏可以取消註冊?由於我只提供將由一個Activity實例化的類,所以沒有onPause,onClose方法。

回答

1

您可以嘗試將您的接收器保存爲靜態。我認爲如果你註冊兩次相同的接收器,只會得到這個錯誤。

如果失敗了,也可以嘗試調用context.getApplicationContext()。registerBroadcastReceiver()而不是使用活動上下文。

+0

使用context.getApplicationContext()做了訣竅。謝謝! – nicobatu 2012-02-22 20:07:31

0

您是否應該擴展Activity,使用Android的工作流程正常工作,然後讓您的用戶擴展您的活動?

這只是一個建議,但它肯定會解決您所描述的問題,因爲您可以在onCreate()上註冊接收器並在onDestroy()上取消註冊。

相關問題