1

我定義了一個BatteryInfo extends BroadcastReceiver類。我在我的Activity onCreate()中調用過它的構造函數。我在onCreate()中用Activity.registerReceiver註冊。Android BroadcastReceiver生命週期:對於動態註冊的接收器,文檔錯誤?

我想弄清楚我是否需​​要取消註冊和/或爲了其基準設置爲null,讓我的活動在沒有內存泄漏或系統堵塞意圖發件人死,或系統是否正常擲所有與此有關的東西都是它自己的。爲實現這一目標,我琢磨,我讀BroadcastReceiver Lifecycle

一個BroadcastReceiver對象僅適用於調用的onReceive(上下文,意圖)的持續時間。一旦你的代碼從這個函數返回時,系統認爲對象是成品,不再主動「。

這是什麼意思呢?顯然我已經與new BatteryInfo()創建和registerReceiver()註冊的對象仍然存在,在整個時間我的活動依然存在。我從它記錄結果,並看到他們整個的時間。顯然,這已經不是第一次後的onReceive()被調用。

我想知道如果本節文檔也許僅適用於BroadcastReceivers它們是無效在AndroidManifest註冊?而且這只是不正確或不相關BroadcastReceivers是否被動態創建並註冊?

當然,我想知道什麼是適合我的動態接收器的清理和推理。

回答

1

您需要爲代碼BroadcastReceivers做的事情是註冊並取消註冊。該聲明通知您,您不能在onReceive之外做任何工作,例如在另一個線程中,並將值返回到BroadcastReceiver。要做到這一點,你會得到BroadcastReceiver開始Service