Androidアノテーションを使用して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
、システムで使用されなくなったアクティビティへのライブ参照を保持している可能性があり、これは良くありません。それともそうではありませんか?私の推定では、登録済みオブザーバーのリストにすべてのアクティビティへの弱い参照を保持して、自動的に登録解除できるようにします。これは良い解決策ですか、それとも必要ありませんか?