你好,我有一個小問題,這有點就像一個循環,我的應用程序My imageAndroid的無盡循環的活動
在我提供你可以看到每一個按鈕兩項活動圖像。當按鈕1被按下時,它會帶你進入第二個活動,當按鈕2被按下時,它會讓你活動一個完美的活動。問題是,如果我不斷按下這些按鈕在兩者之間進行導航,那麼大量活動就會像線一樣建立起來,當按下後退按鈕時,您將自動瀏覽所有打開的活動。
我的問題是我實施的onDestroy方法,如果這樣會怎樣呢?
我可以重寫後退按鈕讓我直接回到活動一,而不是進一步?如下圖所示
你好,我有一個小問題,這有點就像一個循環,我的應用程序My imageAndroid的無盡循環的活動
在我提供你可以看到每一個按鈕兩項活動圖像。當按鈕1被按下時,它會帶你進入第二個活動,當按鈕2被按下時,它會讓你活動一個完美的活動。問題是,如果我不斷按下這些按鈕在兩者之間進行導航,那麼大量活動就會像線一樣建立起來,當按下後退按鈕時,您將自動瀏覽所有打開的活動。
我的問題是我實施的onDestroy方法,如果這樣會怎樣呢?
我可以重寫後退按鈕讓我直接回到活動一,而不是進一步?如下圖所示
貫徹意圖:
Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
新的活動打開時,之前的活動將被關閉。
讓說你要次活動使用以下
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent to_second=new Intent(FirstActivity.this,SecondActivity.class);
startActivity(to_second);
}
});
在你的第二個活動
現在做以下
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
BUTTON2將完成你的第二個活動,並再次簡歷您的第一項活動,你可以再次點擊button1打開第二個活動,並繼續循環。
我的問題是我是否實現了一個onDestroy方法,如果是的話會怎麼樣呢?
你可以調用finish()每當你傳遞給下一個活動
Intent intent = new Intent(Activity1.this, Activity2.class);
startActivity(intent);
finish();
Intent intent = new Intent(Activity2.this, Activity1.class);
startActivity(intent);
finish();
我可以覆蓋後退按鈕帶我直接回活動 一個並沒有進一步?
在Activity2
,你可以調用onBackPressed
在onClick
像
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
@Override
public void onBackPressed(){
// do what ever you want before you back to previous activity
super.onBackPressed();
// call super.onBackPressed(); or finish();
}
好了,你可以在你的AndroidManifest
使這兩個活動launchMode="singleInstance"
。您可以通過撥打onNewIntent()
致電。
不要致電super.onBackPressed()
,因爲它會導致finish()
被調用,只是開始另一個活動。
您可以使用此解決方案,如果你不需要重新創建活動,否則使用CLEAR_TOP &等
'機器人:noHistory =「真」'---在清單中。請小心隱含的含義,請閱讀文檔。 – Skynet
那麼在你的第二個活動中不要使用Intent就完成了();你的活動,它會關閉你的第二個活動,並恢復第一個活動 –
Rakshit你能舉個例子嗎?這是我目前使用的。 startActivity(new Intent(getApplicationContext(),ContactUsMainActivity.class)); – james