簡體   English   中英

清除Android活動堆棧並開始活動

[英]Clear Android activity stack and start activity

我知道這個問題已經在其他帖子中得到了解答。 但這不能解決我的問題。

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

我試過了:

  1. Intent.FLAG_ACTIVITY_CLEAR_TOP 按下后退按鈕時效果很好。 應用退出。 但是,如果我再次從后台打開該應用程序,它將從屏幕B開始。

  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM