[英]Android BroadcastReceiver Lifecycle: documentation wrong for dynamically registered receiver?
我定義了BatteryInfo extends BroadcastReceiver
類。 我在Activity onCreate()
一次調用它的構造函數。 我在我的onCreate()
向Activity.registerReceiver
注冊了它。
我試圖弄清楚是否需要注銷它和/或將其引用設置為null
才能使我的Activity死掉而不會泄漏內存或阻塞系統中的意圖發送者,或者系統是否優雅地丟棄了與此相關的所有內容在其自己的。 為此,我正在考慮我的BroadcastReceiver生命周期 :
BroadcastReceiver對象僅在對onReceive(Context,Intent)的調用期間有效。 一旦您的代碼從該函數返回,系統就會認為該對象已完成並且不再處於活動狀態。”
這是什么意思? 顯然,對象我與創建new BatteryInfo()
並與注冊registerReceiver()
通過我的活動依然存在,整個時間持續。 我從中記錄結果,並一直看到它們。 顯然,它在第一次調用其onReceive()
之后並沒有變得無效。
我想知道這部分文檔是否僅適用於在AndroidManifest
中注冊的BroadcastReceivers
? 並且它與動態創建和注冊的BroadcastReceivers
完全不正確或無關嗎?
當然,我想知道對我的動態接收器來說適當的清理和遞減是什么。
您需要使用代碼對BroadcastReceivers
進行的所有操作是注冊和注銷它們。 該語句通知您,您不能在onReceive
之外(例如在另一個線程中)進行任何工作,然后將值返回給BroadcastReceiver
。 為此,您可以讓BroadcastReceiver
啟動Service
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.