シナリオ:
私の Android アプリケーションには 4 つのアクティビティがあります。A、B、C、D としましょう。アプリには、アプリケーションのグローバルな状態を維持するためにクラスConstants.java
を拡張するクラスが 1 つあります。Application
Constants クラスには、アプリのすべての定数変数があります。活動の流れはこんな感じA-->B-->C-->D
です。アクティビティ A から戻るボタンが押されたときに、アクティビティ A を終了してアプリケーションを閉じる finish() メソッドを呼び出しています。その後、すべてのアプリからアプリを開くとConstants.java
、最後の起動から値が保持される変数があります。アクティビティAから(バックプレスで)System.exit(10)
続けているときは、同じことは起こりません。Process.killProcess(Process.myPid())
質問:
- 各アクティビティのfinish()を呼び出してすべてのアクティビティを終了すると、アプリケーション(そのプロセス)が閉じますか?
- すべてのアクティビティが終了 (終了) した場合でも、変数の値はどのように保持されますか?
- アプリケーションを終了するため
System.exit(10)
に呼び出すのは公平ですか?Process.killProcess(Process.myPid())
アップデート:
アプリケーションの終了時にアプリケーション定数をクリアするにはどうすればよいですか (HomeActivity の Back キーを押します)?