簡體   English   中英

Android BroadcastReceiver生命周期:動態注冊接收器的文檔錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM