クラスを定義しますBatteryInfo extends BroadcastReceiver
。コンストラクターを1回呼び出しますActivity onCreate()
。に登録しActivity.registerReceiver
ますonCreate()
。
null
メモリリークやシステム内のインテント送信者を詰まらせることなくアクティビティを停止できるようにするために、登録を解除したり、参照を設定したりする必要があるかどうか、またはシステムがこれに関連するすべてのものを優雅に投げるかどうかを判断しようとしていますそれ自身。そのために、私は次のように読んだ BroadcastReceiverライフサイクルについて考えています。
BroadcastReceiverオブジェクトは、onReceive(Context、Intent)の呼び出し中のみ有効です。コードがこの関数から戻ると、システムはオブジェクトが終了し、アクティブでなくなったと見なします。」
これは何を意味するのでしょうか?明らかに、私が作成しnew BatteryInfo()
て登録したオブジェクトはregisterReceiver()
、アクティビティが持続する間ずっと持続します。私はそれからの結果を記録し、その間ずっとそれらを見ます。明らかに、最初onReceive()
に呼び出されてから無効になったわけではありません。
ドキュメントのこのセクションは、おそらく?BroadcastReceivers
に登録されているものにのみ適用されるのではないかと思います。そして、動的に作成および登録されるの AndroidManifest
は、単に正しくないか、または無関係であるということですか?BroadcastReceivers
そしてもちろん、ダイナミックレシーバーの適切なクリーンアップとderferencingは何であるか疑問に思っています。