簡體   English   中英

Android-如何返回以前的其他活動

[英]Android - how to return to different previous activities

我的應用程序中有幾個活動/頁面。 從第一個活動中,我可以打開第二個活動。 在此第二活動中,玩游戲。 游戲結束后,新的活動開始。 在該新活動中,我有一個使用finish()完成該按鈕的按鈕,它使我回到游戲的活動中。 我還具有一個將其返回到第一個活動的按鈕。 這是一個說明圖:

img

當我使用finish()返回游戲活動時,游戲處於結束狀態。 我想重置所有變量和小部件,但是我不知道如何通過在Final Activity中調用finish()來檢查是否進入了此頁面。

問題1:如何檢查是否由於完成另一個活動而參加了一項活動?

我還有一個問題:在button2中,我可以使用什么方法不僅可以完成最終活動,還可以完成堆棧上的所有先前活動(除了第一個活動,因此在本例中將是“最終活動”和“游戲活動”),為了返回第一個活動? 在關於stackoverflow的其他答案中,我找到了使用FLAG_ACTIVITY_CLEAR_TOP建議,但如果這樣做,我將無法再通過button1返回到Game Activity。

問題2:如何返回第一個活動,同時仍然允許我使用finish()返回其他活動?


我用來返回上一活動的代碼:

// called from button1's onClick 
public void goBack(View button1){
    finish();
}

回到第一個活動:

public void toFirstActivity(View button2){
    Intent previousPage = new Intent();
    previousPage.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    finish();
}

問題1:如何檢查是否由於完成另一個活動而參加了一項活動?

您可以輕松地使用全局布爾標志,例如“ activityFinished”,當您在Final Activity上調用finish()時,將其設置為true。 並在您活動的onResume()中,檢查activityFinished == true,如果是,則將您的內容設置為false。

問題2:如何返回第一個活動,同時仍然允許我使用finish()返回其他活動?

我不明白為什么FLAG_ACTIVITY_CLEAR_TOP對您來說是個問題。 您僅將意圖設置為FLAG_ACTIVITY_CLEAR_TOP即可在按下按鈕2后返回到您的第一個活動,不是嗎? 這與按鈕1的動作有什么關系?

更新:嘗試此代碼

Intent a = new Intent(this,FirstActivity.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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