2016-08-18 4 views
1

私はC> D> Aから移動したときにアクティビティ "A"、 "B"、 "C"、 "D"とし、アクティビティ "A"、 "C"私はアプリからのものではなく、私に見えるようになった。あなたは次のアクティビティを呼び出すときにあなたがあなたの活動を破壊することができ、ホーム画面アンドロイドのバックスタックからアクティビティを削除するにはどうすればよいですか?

@Override 
    public void onBackPressed() { 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setCancelable(true); 
     builder.setTitle("Exit"); 
     builder.setMessage("Do you want to exit?"); 
     builder.setInverseBackgroundForced(true); 
     builder.setNegativeButton("Yes", 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        /*finish(); 
        System.exit(0);*/ 
        Intent intent = new Intent(Intent.ACTION_MAIN); 
        intent.addCategory(Intent.CATEGORY_HOME); 
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        startActivity(intent); 
       } 
      }); 
     builder.setPositiveButton("No", 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 
     builder.create(); 
     builder.show(); 


    } 

答えて

0

public static B b; 
oncreate(){ 
//... 
b=this; 
} 

CとDとAで同じ操作を行う

onResume(){ 
    clearAllTasks(); 
} 

public void clearAllTasks(){ 
if(B.b!=null){ 
    B.b.finish(); 
} 
if(C.c!=null){ 
    C.c.finish(); 
} 
if(D.d!=null){ 
    D.d.finish(); 
} 
} 

マニフェスト

<application> 
    <activity android:name="A" 
    android:noHistory="true"> 
    </activity> 
    //... 
</application> 
0
は、このようなあなたのbackpressをオーバーライド

。したがって、Intentの後にfinish()メソッドを呼び出して、そのアクティビティを破棄することができます。

チェックこの1

Intent intent = new Intent(this, NextActivity.class); 
startActivity(intent); 
finish(); 

あなたがこれを使用すると、それは活動を終え代わりに前のアクティビティに移動しません。

OR
また、私はあなたがあなたのアプリケーションを終了しようとしていると思います

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
1

に戻りたい場所から

0

NO_HISTORYフラグを使用することができます。 はここにあなたの答えです:あなたはすべての活動のこのstaicで変数

アクティビティB格納する必要があるあなたがそのためにonResumeにすべての活動を終えることができるアクティビティAでは How to exit from the application and show the home screen?

@Override 
public void onBackPressed() { 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
} 
関連する問題