2017-02-11 104 views
0

我知道這個問題已在其他帖子中得到解答。但它不能解決我的問題。清除Android活動堆棧並啓動活動

我有3 screens: A,B and Home。應用程序以A開頭,然後進入B然後進入主頁。但是我想在它到達Home活動時刪除活動A和B,以便當back is pressed app exits

我想:

  1. Intent.FLAG_ACTIVITY_CLEAR_TOP。當按下返回時它工作正常。應用程序退出。但是如果我再次從後臺打開應用程序,它將從屏幕B開始。

  2. Intent.FLAG_ACTIVITY_NEW_TASK.這與我想要的完全相同。但是,當Home活動開始時,屏幕上會突然出現故障,並且不平滑。

+0

您可以完成該活動a和b的家庭活動負載或可以處理回來按 – curiousMind

回答

0

試試下面的代碼:

Intent i = new Intent(YourActivity.this, HomeActivity.class); 
      i2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
finish(); 
startActivity(i); 
+0

Intent.FLAG_ACTIVITY_NEW_TASK導致故障和轉換不光滑 – jayasoo

0

你能做到這樣也爲你的閃屏(A)你可以設置nohistory = true在AndroidMenifest.xml,並轉到活動(B),以及當你從活動(B)完成活動(B)開始活動主頁時,而不是進入活動主頁活動。 因此您之前的兩項活動都不會以堆疊方式存儲。

而在活動B上覆蓋onBackPresh()方法,但刪除其中的super.backpresh()。並開始你的活動A完成這個當前的活動,它將起作用。

+0

在您的解決方案,如果我按下從B按鈕它不會去回到A. – jayasoo

+0

一般來說,如果一旦我們顯示它,它只有一次,我們不再顯示斜槓屏幕。 –

+0

他們都是登錄屏幕。所以在我的情況下回去是必要的。 – jayasoo

1
Intent intent = new Intent(getApplicationContext(), Home.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

這將清除家中的所有活動。