在我的android應用程序中,我首先搜索一個咖啡館。當用戶選擇一個咖啡廳的下一個活動將顯示更多關於它的細節。然後用戶可以查看咖啡館的地圖。當用戶點擊完成按鈕時,我需要將用戶重定向到第一個活動的搜索結果。那我該怎麼做?調用finish()方法只會關閉當前的活動。如何返回到Android的第三個活動?
在此先感謝!
在我的android應用程序中,我首先搜索一個咖啡館。當用戶選擇一個咖啡廳的下一個活動將顯示更多關於它的細節。然後用戶可以查看咖啡館的地圖。當用戶點擊完成按鈕時,我需要將用戶重定向到第一個活動的搜索結果。那我該怎麼做?調用finish()方法只會關閉當前的活動。如何返回到Android的第三個活動?
在此先感謝!
,你繼續,你可以使用在每一個活動結束(),也可以使用該標誌FLAG_ACTIVITY_CLEAR_TOP
開始你的第一個活動,它會清除您的第一個活動的所有頂級的活動,它會帶給你的第一個活動上top.Use這樣的:
Intent intent = new Intent(this, yourFirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
啓動與thiss標誌,活動Intent.FLAG_ACTIVITY_CLEAR_TOP
Intent.FLAG_ACTIVITY_CLEAR_TOP
清除除你的第一個活動以外的所有內容,這應該工作得很好。
根據Android Application Developer Forum你應該通過以下方式開展這項活動: -
startActivity(intent);
爲了使用戶仍然可以恢復到以前的活動B中的一個不應該使用Intent.FLAG_ACTIVITY_CLEAR_TOP
相反活動B應該使用startActivityForResult(... C ...) 同樣的活動B應該使用onActivityResult()檢查結果,並在活動C中單擊完成時完成。但是如果僅在活動C中單擊返回那麼活動B將正常顯示。
//DOES NOT FINISH ALL ACTIVITY
Intent intent=new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
//FINISH ALL ACTIVITY WHICH IS IN STACK ABOVE TARGET ACTIVITY
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
請記住,一旦您使用了CLEAR TOP,您就無法重新啓動所有在其上的活動。謝謝 – SALMAN