2016-04-30 14 views
2

アンドロイドアプリには3つの画面があります。ボタンをクリックして前回のアクティビティを完了しました。android

  • 画面1私は名前のボタンを追加した(ホーム画面)
  • 画面2
  • 画面3

画面1つの開始画面2と画面2開始画面3.

EXIT on screen 3.私が望むのは、このボタンを押すと、スクリーン1とスクリーン2のアクティビティが終了するはずです。これは、以前のすべての活動をクリアします

Intent intent = new Intent(getApplicationContext(), Home.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

:以下のコードを記述終了ボタン上

+0

アプリを終了するか、アクティビティスタックを空にしたかったですか? – sushildlh

+0

別のアクティビティにインテントを渡すと、最初のアクティビティが終了する。インテントi =新しいインテント(getApplicationContext()、Screen2.class); \t \t \t \t startActivity(i); \t \t \t \t finish();このコードをscreen1.classに書くと、Screen1はアクティビティを終了します。 –

+0

終了ボタンを押したときに画面3はどうなりますか? – Apurva

答えて

3

画面のExitボタンを押すと、スタック内の他のすべてのアクティビティが強制終了され、自動的に閉じられます。このトリックを行うための私の作業サンプルです。

public class ExitActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     if (android.os.Build.VERSION.SDK_INT >= 21) { 
      finishAndRemoveTask(); 
     } else { 
      finish(); 
     } 
    } 

    public static void exitApplication(Context context) { 
     Intent intent = new Intent(context, ExitActivity.class); 

     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); 

     context.startActivity(intent); 
    } 
} 

つまり、あなたの[終了]ボタンonClickexitApplication関数を呼び出す必要があります。

+1

助けを借りてありがとう – Eagle

0

をクリックします。

+0

'Home'アクティビティが3つ目の画面であると仮定すると、アクティビティスタックがクリアされ、*アクティビティが再開されますが、回避策ですが正確な解決策はありません。 – Apurva

関連する問題