このパターンに精通している私たちのほとんどは:
   public class MySingeltone {
    public String mSomeReferenceTypeData;
    public int mSomeValueTypeData;
    private static MySingeltone mInstance;
    private MySingeltone() {
    }
    public static MySingeltone getInstance() {
        if (mInstance == null) {
            mInstance = new MySingeltone();
        }
        return mInstance;
    }
 }
私の問題は、最近、mInstanceを使用するアクティビティが破棄された後、またはアプリケーション全体が句であると想定された場合に、mInstanceがnullに等しくないことを発見したことです。
public class SomeActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MySingeltone mySingeltone = MySingeltone.getInstance();
        mySingeltone.mSomeReferenceTypeData = "some value";
    }
}
アクティビティを実行しているアプリケーション全体を閉じた後(たとえば、10秒後)に次回「SomeActivity」を起動すると、mInstanceは同じ参照を保持し、フィールドに同じ値を設定します。
なぜそれが起こっているのですか?
私は何が欠けていますか?
Androidのガベージコレクションの静的メンバーがアプリケーションに属する場合はどうなりますか?