0

Android:launchMode="singleTask" でアクティビティを作成しています。アプリには、アクティビティで宣言されていない別のクラスがあり、それ自体が静的な最終インスタンスと、アクティビティで表示するジャーナルを保持します。バックキーを押してアクティビティを終了しようとすると。私が入れたように、ログはアクティビティが破棄されたことを示しています

@Override
public void onDestroy() {
    super.onDestroy();
    Log.d("I am destroyed", ".");
}

アクティビティのコード。ただし、アプリを再度起動すると、アクティビティは終了したときと同じままであることがわかります。次に、戻るキーを押して、最近のアプリのリストから手動で削除します。そして、アプリを再度実行します。今回は、アプリが本来あるべき姿で表示されます。

戻るキーを押してアプリを終了することと、最近使用したアプリのリストから削除することの違いは何ですか? また、通常のアプリと同じようにアプリを終了したい場合はどうすればよいですか?

4

2 に答える 2

0

各 Android アプリケーションは独自のプロセスを取得し、そのプロセスでは、プロセスが終了することなく、もう 1 つのアクティビティが何度も開始および終了する可能性があります。

静的変数は、Activity が終了してもスコープ外にはなりませんが、プロセスが最終的に終了した場合に限ります。

を呼び出してプロセス全体を終了することもできますが、System.exit(0)そのようなことは通常お勧めできません。より良い解決策は、アクティビティが破棄されたときに関連する値を再初期化することです。

編集: Android アプリケーションを閉じる方法の詳細については、この投稿を参照してください。

Android アプリケーションを終了する方法は?

于 2012-09-22T15:06:26.807 に答える
0

アプリから「戻る」ことは、アプリが終了したことを意味するわけではありません。Android は、いつ終了するかを決定します。これは設計によるものであり、アプリの高速起動を提供することを目的としており、非常にうまく機能します。コードを表示していないので推測にすぎませんが、onCreate() でやりすぎて onResume() を無視している可能性があります。Android アクティビティのライフサイクルを見てみましょう。

http://developer.android.com/reference/android/app/Activity.html#ライフサイクル

于 2012-09-22T15:09:04.670 に答える