0

重複の可能性:
Android の [戻る] ボタンを押すと、アプリを終了する必要があります

モバイルの戻るボタンを使用してアプリを閉じようとしています。現在、メソッドをオーバーライドonKeyPressedして呼び出してmoveTaskToBack(true);います。アプリを非表示にしますが、閉じません。今でも記憶に残っています。戻るボタンを押してアプリを閉じるにはどうすればよいですか?

これが私のコードです

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
4

8 に答える 8

2

あなたはそうしない。まあ、完全ではありません。

アプリのライフサイクルは、バックグラウンドでの動作が正常であり、期待されるように作成されています。これにより、ユーザーが必要な場合にアプリをすばやく前面に復元でき、Androidでメモリ管理を実行できます。のような特別なメソッドがonPause()ありonResume()、これを処理するのに役立ちます。

それを超えると、finish()現在のアクティビティを閉じてスタックから削除しますがSystem.exit(0)、アプリを閉じる必要があります。

CommonsWare(Mark Murphy)によるこの質問に対する優れた回答を読む必要があります。これは、Androidにアプリをメモリに保持させる多くの理由に対処しているためです。

于 2012-10-02T07:14:56.797 に答える
2

代わりに行う方が安全だと思いますthis.finish();

System.exit(0)はお勧めしませんAndroidが、アプリの管理はやらせたほうがいいです。

このリンクを確認してください:アプリケーションを終了することは眉をひそめていますか?

于 2012-10-02T07:12:43.413 に答える
1

私にそれを保持しないでください。しかし、onbackpressed が現在推奨される方法であると信じています。はい、終了します () ; うまくいくはずです。

于 2012-10-02T07:36:33.927 に答える
1

新しいアクティビティをプッシュするときは、前のアクティビティで finish() を呼び出します。そうしないと、スタックに残り、現在のアクティビティをヒットバックしてポップしたときに表示されます。

于 2012-10-02T07:11:01.783 に答える
1

finish()アプリを閉じるために使用できるはずです。ただし、メモリ管理が原因である場合は、Android 独自のメモリ管理を使用したいと思います。それは実際にはかなり良いです。メモリを解放する必要がある場合、一時停止しているアプリケーションを定期的に削除します。また、それがサービスでない限り、スタックに置かれている間、あまり多くのメモリを消費するべきではありません。ただし、例外もあります。

于 2012-10-02T07:17:26.873 に答える
0

-戻るボタンでアプリを閉じるために使用System.exit(0)します。これは、Java アプリケーションで非常に便利です。Android でも同じように機能しますが、以下の方法を使用することをお勧めします。

finish()finishActivity()2つの選択肢があります

于 2012-10-02T07:10:40.450 に答える
0

アプリケーションを終了する場合は、次のように記述します。

finish() 

System.exit(0)推奨されないためです。これにより、アプリケーションも終了します。

于 2012-10-02T07:10:55.177 に答える
-1

System.exit(0)アプリ全体を閉じます。 finish()現在のアクティビティを閉じる別のスニペットです。

于 2012-10-02T07:10:22.173 に答える