[英]Clear Android activity stack and start activity
我知道這個問題已經在其他帖子中得到了解答。 但這不能解決我的問題。
我有3 screens: A,B and Home
。 應用程序以A開頭,然后轉到B,然后轉到主頁。 但是我想在活動A和B到達“主頁”活動時刪除它,以便在back is pressed app exits
。
我試過了:
Intent.FLAG_ACTIVITY_CLEAR_TOP
。 按下后退按鈕時效果很好。 應用退出。 但是,如果我再次從后台打開該應用程序,它將從屏幕B開始。
Intent.FLAG_ACTIVITY_NEW_TASK.
這完全符合我的要求。 但是,當開始“家庭”活動時,屏幕上會突然出現毛刺,這並不平滑。
Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
這將清除家庭頂部的所有活動。
嘗試以下代碼:
Intent i = new Intent(YourActivity.this, HomeActivity.class);
i2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
finish();
startActivity(i);
您也可以這樣做,對於您的splashScreen(A),您可以在AndroidMenifest.xml中設置nohistory = true,然后轉到Activity(B),然后從Activity(B)進行Activity Home時,完成activity(B)轉到首頁活動。 因此您之前的兩個活動都不會存儲在堆棧中。
在Activity B上重寫onBackPresh()方法,但在其旁邊刪除super.backpresh()。 並從完成當前活動開始您的活動A,它將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.