アプリケーションのユーザーに関する慎重な情報を格納するシングルトンがあります。現時点では、ユーザーのログインとユーザーの場所が保存されています。
1)場所はサービスを介して検出されます。現在、サービスは私のシングルトンを直接参照して、経度と緯度を詰め込んでいます。代わりに、BroadcastReceiverを使用して、シングルトンが聞いて値を更新するために使用するブロードキャストを送信したいと思います。
ただし、BroadcastReceiverを登録するには、シングルトンにコンテキストが必要です。私が望んでいることを達成するための最も巧妙な方法は何ですか。BroadcastReceiverはおそらく適切なオブジェクトではありませんか?
2)また、シングルトンを使用することでどのような問題が発生しますか?Androidはいつでもこのメモリを再利用する可能性があると思います(これは明らかに悪いことです)。どうすればそれを防ぐことができますか?アプリケーションのコンテキストを渡し、それをメンバー変数に格納することで、これを阻止できますか?
Androidのドキュメントには次のように記載されています。「しかし、静的なライフサイクルは十分に制御できません。したがって、ライフサイクルモデルに従うために、アプリケーションクラスはonCreate()およびonTerminate()でこれらの静的オブジェクトを開始および破棄する必要があります。 )アプリケーションクラスのメソッド」ですが、これを実現する方法が完全にはわかりません。