2012-04-02 7 views
1

私はa1をa2に、a2をa3にナビゲートしています。エミュレータから戻るボタンを押すと、アクティビティa2を終了しないでアクティビティa1に行きたいです。これを行うにはどうすればいいですか。事前アクティビティのライフサイクルの問題

+0

として再スタートを()オーバライドでき

あなた http://stackoverflow.com/questions/7790248/how-to-finish-activity-from-another-activity –

答えて

7

はい、あなたはどんな活動に移動することができます。これによりボタン

public void onBackPressed() { 

Intent start = new Intent(currentclassname.this,which activity u want.class); 
    startActivity(start); 
    finishActivity(0); 
} 

をそのバック上書きすることができます。これは非常に簡単で簡単な方法です

3

でme..Thanksは、あなたのA3の活動の背中キーイベントでこれを試してみてください:

Intent intent = new Intent(this,A1.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

彼は、活動a2が終了しないことを望んでいます。上記の解決策(FLAG_ACTIVITY_CLEAR_TOP)はスタックからa2を削除しません。間違っていれば私を正す。 – Deva

+0

@Deva彼はSINGLE_TOPを使うべきだと思います。 –

0

活動2を死ぬことはありません。 onPause()およびonResume()メソッドを実装するだけで、アクティビティの状態を保持および復元できます。

http://developer.android.com/reference/android/app/Activity.html

ライフサイクル図が便利です。アクティビティを生成してスタックに移動する方法を制御するには、マニフェストアクティビティのプロパティを調整したり、コールインテントにフラグを追加したりできます。

1

書き込みA3で、この事は

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    Intent intent=new Intent(getApplicationContext(),a1.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 

} 
0

これはAndroidManifest.xmlファイルから実装することもできます。必要なものにandroid:noHistory = "true"属性を追加するだけです。 A2活動で

0

あなたはそれが助けかもしれリンクの下に査読してください下に::

@Override 
protected void onRestart() { 
// TODO Auto-generated method stub 
super.onRestart(); 
startActivity(new Intent(getApplicationContext(),a1.class)); 
} 
関連する問題