想象一下,您有兩個活動 - A和B.您從A開始B.在B中您有一個任務。如果任務已完成,則在想要關閉整個應用程序時,如果未按下回車鍵,則要返回到A.但解僱後,您可以從最近的應用程序菜單恢復B.如果在此之後您需要相同的後退鍵。在兩個活動之間切換
所以我想解僱只有一個活動或整個應用程序(但與恢復可能性)。有沒有辦法實現這一目標?
想象一下,您有兩個活動 - A和B.您從A開始B.在B中您有一個任務。如果任務已完成,則在想要關閉整個應用程序時,如果未按下回車鍵,則要返回到A.但解僱後,您可以從最近的應用程序菜單恢復B.如果在此之後您需要相同的後退鍵。在兩個活動之間切換
所以我想解僱只有一個活動或整個應用程序(但與恢復可能性)。有沒有辦法實現這一目標?
在ActivityB
覆蓋onBackPressed()
如果任務完成,只需撥打super.onBackPressed()
將完成ActivityB
並返回到ActivityA
。否則,要解僱整個應用程序只使用moveTaskToBack()
,並不要撥打super.onBackPressed()
。當用戶返回到應用程序時,將顯示ActivityB
(因爲它尚未完成)。
要關閉某個活動,可以調用它的finish()方法。並且爲了駁回整個申請,請嘗試啓動家庭活動的意圖。 看看這個: How to Launch Home Screen Programmatically in Android
是的,但是如果moveTaskToBack()被調用,那麼當任務完成時,我將按回來鍵,整個應用程序仍然會被解除。就我所知,沒有辦法將活動B移到堆棧的前面。 – Lingviston
對不起,不明白。如果您的活動堆棧包含「ActivityA-> ActivityB」,並且您將此任務移動到後臺,然後將其帶回前臺,您仍然擁有前面帶有「ActivityB」的「ActivityA-> ActivityB」。請更多解釋你在做什麼。 –
對不起,你是對的:) – Lingviston