数日前、私はシングルトンがAndroidでアンチパターンになる可能性があることを発見しました。私のシングルトン(プライベートコンストラクタを持つクラスと静的フィールドに格納されているインスタンス)は削除されました(別のインスタンスが作成されなければならないため、他のアクティビティがこのシングルトンを(getInstance()メソッドを使用して)最初に呼び出されたものが削除されました(この1つのアクティビティーのみを終了した後)。Androidでのenumベースのシングルトンのライフサイクル
私は既にこの問題を解決する方法を読みましたが、「効果的なJava」も読んでいます。 「単一要素列挙型は、シングルトンを実装するためのバストウェイです」と言われています。
これで、Androidアプリケーションでこのように作成されたシングルトンのライフサイクルはどうなっているのでしょうか? 「標準的なシングルトン実装」の場合と同じように、それが最初に呼び出されたアクティビティを破棄した後で(たとえそれが他のアクティビティでも使用されたとしても)破棄されるでしょうか?
私は適切なアンドロイドシングルトンの実装やシングルトンパターン自体については問いませんが(パターンやアンチパターンなど)、そのようなenumシングルトンオブジェクトのライフサイクルは何か破壊されました。
シングルトンは、一般に反パターンです。何かが本当に必要な場合は、別のものを作成しないでください:P – cHao
これは、いくつかの説明を必要とする可能性があります。シングルトンエニュウムに入れてください)、あなたのアクティビティが終了したときにアンドロイドから参照されて消えました(そしてあなたのアプリケーションもシャットダウンされました)?これはシングルトンの期待される動作でしょう - アプリケーションの再起動の間に保持する必要があるすべての状態 - OTOH、私は完全に質問を誤解している可能性があります: - D – Jens
@Jens私は私の質問を更新しました。 – mmatloka