4

3つのアクティビティを持つAndroidアプリケーションがあります。1番目と2番目のアクティビティでは、戻るボタンで既存のすべてのアクティビティを終了します。

戻るボタンが開始されたアクティビティを終了している時点で、2番目のアクティビティを押すと、最初のアクティビティが2番目につながるときにアプリケーションを終了するのではなく、1番目のアクティビティが表示されます。

この機能が必要な理由は、1番目と2番目のアクティビティがクロノメータータイマーを使用しているためです。クロノメータータイマーは、必要なHOMEボタンが押されたときに実行され続けます。しかし、戻るボタンを使用してアプリケーションを完全に終了するには、タイマーをリセットする方法が必要です。

これが、1番目と2番目のアクティビティの両方に存在する戻るボタンのコードです。

@Override
 public void onBackPressed() { // method for exit confirmation
  AlertDialog.Builder builder = new AlertDialog.Builder(BreakActivity.this);
  builder.setMessage("Are you sure you want to exit?")
         .setCancelable(false)
         .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  BreakActivity.this.finish();
             }
         })
         .setNegativeButton("No", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  dialog.cancel();
             }
         });
  AlertDialog alert = builder.create();
  alert.show();

        }         
  };  

私は次のコードを使用する可能性を調査しました:

intent = new Intent(this, FinActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent)
finish();

ただし、これをどこに実装すればよいかわからないため、[戻る]ボタンを押した後に確認メッセージが表示された後に[はい]を選択した場合にのみ、すべてのアプリケーションを終了したいと思います(最初のコードスニペットを参照)。

これを機能させるための助けをいただければ幸いです。

ありがとうございました

4

5 に答える 5

11

@Robは、アクティビティ1から2および2から3に移動するときに、意図的な使用の終了機能を使用します。

お気に入り

 i=new Intent(Main_Menu.this, ABC.class);
          finish();
         startActivity(i);

スタックにアクティビティがないため、次のアクティビティに移動するアクティビティを強制終了し、戻るボタンを押すとアプリケーションの外部に移動します。

于 2012-04-05T12:51:06.313 に答える
7

あなたはこれを使うことができます

        finish();
        Intent intent = new Intent(Intent.ACTION_MAIN); 
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        intent.addCategory(Intent.CATEGORY_HOME); 
        startActivity(intent);

システムを常に回避することに注意してください。アプリケーションを終了するために終了することは推奨されておらず、さまざまな問題を引き起こす可能性があります。

https://groups.google.com/forum/?fromgroups#!topic/android-developers/Y96KnN_6RqM

アプリケーションを閉じて、Androidでホーム画面を起動します

于 2012-04-05T12:44:44.843 に答える
0

System.exitなどを呼び出さないでください。Androidアーキテクチャは、プロセスを自己管理するように構築されています。Android自体が、アプリプロセスをいつ終了するかを決定します。アプリケーションを手動で強制終了すると、ユーザーデバイスに追加のオーバーヘッドが発生します。

タイマーを手動でリセットし、アプリのアーキテクチャを修正してみてください。

于 2012-04-05T12:48:22.720 に答える
0

次のコード行を使用します。

System.exit(1);

//The integer 1 is just a return code.

Androidでアプリケーション全体を閉じる方法

于 2012-04-05T12:39:34.593 に答える
0

あなたが使用することができます-

Process.killProcess(android.os.Process.myPid());
于 2012-04-05T12:39:41.430 に答える