0

例えば、

私は活動A、B、C、Dを持っています

A コール B

Intent intent = new Intent(A,B.class);

startActivity(intent);

次に、BはCに電話をかけます

Intent intent = new Intent(B,C.class);

startActivity(intent);

その後、CはDに電話をかけます

Intent intent = new Intent(C,D.class);

startActivity(intent);

アクティビティ D では、 を呼び出しますfinish()。アクティビティ C に戻ります。

finish()私の質問は、アプリが通常どおり終了するように、呼び出す前にアクティビティ A、B、C をクリアするにはどうすればよいかということです。

アプリが前のアクティビティに戻って続行する可能性があるため、finish()毎回電話をかけることを提案しないでください。startactivity

4

5 に答える 5

2

これは間違いなく動作するはずです...

Intent intent = new Intent(D,A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("close",true);
startActivity(intent);

and in oncreat of A activity u have to write
if (getIntent().getBooleanExtra("close", false)) {finish();
}
else {
{
 //ur previous code here
}

質問できる問題があれば楽しんでください

于 2013-09-05T07:43:26.807 に答える
1
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP
FLAG_ACTIVITY_CLEAR_TASK
FLAG_ACTIVITY_NEW_TASK

これにより、インスタンスが既に実行されていて最上位にない場合、新しいインスタンスを開始する代わりに、その上にあるものはすべてクリアされて使用されます (これは、アクティビティ A -> アクティビティ B に移動してからB から A に戻りたいのですが、余分なフラグが上記のケースに影響することはありません)。

于 2013-09-05T06:57:19.810 に答える
0

で試してくださいIntent.FLAG_ACTIVITY_CLEAR_TOP

Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

ここを参照してください http://developer.android.com/reference/android/content/Intent.html

于 2013-09-05T07:08:43.127 に答える
0

を追加してみてくださいFLAG_ACTIVITY_NEW_TASK

したがって、コードは次のようになります。

Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
于 2013-09-05T06:56:27.883 に答える
0

私は自分のアプリケーションで以下を使用しています。それが役立つことを願っています。

Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // this will clear the stacks
intent.putExtra("exitme", true); // tell Activity A to exit right away
startActivity(intent);

アクティビティ A に以下を追加します。

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    if( getIntent().getBooleanExtra("exitme", false)){
        finish();
        return;
    }
}
于 2013-09-05T07:02:27.050 に答える