破壊()AndroidのObserverを削除します
-
11-12-2019 - |
質問
Androidのアンドロイドの注釈を開発しています。私はオブザーバーとして活動を追加したいシングルトン観測可能なオブジェクトを持っています。次のようなもの:
@EActivity(R.layout.myActivity)
public class MyActivity extends SherlockActivity implements Observer {
@Bean //has singleton scope
protected Observerable o;
@Override
public void onCreate() {
o.registerObserver(this);
}
@Override
public void onDestroy() {
o.unregisterObserver(this);
}
//more code
.
私の質問はOn Destroyメソッドにあります。Androidは、停止または一時停止状態の間にアクティビティを殺す状況がありますか?はonDestroy()
を呼び出しますか?この場合、Observerable
がシステムで使用されなくなったアクティビティへのライブ参照を保持することができます。またはこれはそうではありませんか?それが私の推定であれば、登録されたオブザーバーのリストですべての私の活動に弱い参照を保つことであるので、それらは自動的に登録解除することができます。これは良い解決策ですか、それとも必要ありませんか?
解決
OSはOnDestroyを呼び出さずにあなたのプロセスを殺すことができますが、そうでなければあなたは呼び出されているondestroyに頼ることができます。それであなたの観察可能なものは活動と同じプロセスにあるならば、あなたは大丈夫です。
他のヒント
Android Documentation 、この場合、
他のアプリケーションが起動する必要があり、システムに十分なメモリがない場合に発生する可能性があります。
編集:まあ、この場合、システムはこの方法で呼び出されるようです。私はもうワークフローについては本当によくわからない...
所属していません StackOverflow