版本[2.2]
我創建了一個主要活動[A],在點擊一個按鈕,它關係到另一個活動[B]( 「此活動具有透明背景,所以主要活動[A]也可以查看」需要強制)。
一旦我點擊返回按鈕從活動[B]它應該去活動[A](或)活動[B]有一些按鈕,如果我點擊任何按鈕從活動[B]它應該去活動[C ]。
從活動[C]它點擊返回按鈕活動[A]是活的。
對於我來說,雖然點擊返回從活動[C]按鈕,我的應用程序應該是結束()......
plz幫助我。
版本[2.2]
我創建了一個主要活動[A],在點擊一個按鈕,它關係到另一個活動[B]( 「此活動具有透明背景,所以主要活動[A]也可以查看」需要強制)。
一旦我點擊返回按鈕從活動[B]它應該去活動[A](或)活動[B]有一些按鈕,如果我點擊任何按鈕從活動[B]它應該去活動[C ]。
從活動[C]它點擊返回按鈕活動[A]是活的。
對於我來說,雖然點擊返回從活動[C]按鈕,我的應用程序應該是結束()......
plz幫助我。
在你活動[C]將這個代碼 -
@Override
public void onBackPressed() {
Intent intent = new Intent(this, activity[c].class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
}
,並在你的方法onCreate
活動[C]將這個代碼 -
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
當調用意圖使用此代碼來殺死以前的活動
Intent i=new Intent(activity[a].this,activity[b].class);
startActivity(i);
activity[a].this.finish();
這個代碼幫助清除所有活動,例如:其明顯的活性[A]和活動[B]
Intent i = new Intent(activity[c].this,activity[a].class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
創建活動爲您提供的時候,你必須創建活動A. 對於如的一個實例。 static A instanceA = this; 現在創建一個靜態方法getInstace()
public static A getInstance(){
return instanceA;
}
enter code here
Now in Activity B on setonclicklistener
write A.getInstance().finish(); //For Activity A
而且還完成()//對於活動B
喜作下列修改一個接一個。要實現這個每個活動應該以startActivityForResult而不是startActivity開始。
在啓動A到B的過程中,您應該使用下面的代碼。
startActivityForResult(new Intent(ActivityA.this,ActivityB.class),12);
雖然開始活動B到C你應該使用下面的代碼。
startActivityForResult(new Intent(ActivityB.this,ActivityC.class),12);
添加下面的方法在所有三個活動。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==12){
setResult(12);
this.finish();
}
}
當您完成任何活動時添加代碼。 (如果您在活動A或B或C中單擊完成按鈕),然後在按鈕完成的onClick下方添加)。
setResult(12);
ClassName.this.finish();
不使用onBackPressed和startActivity。它是處理這個問題的簡單方法。