2012-12-13 145 views
1

A有ActivityA-->ActivityB-->ActivityC。如果用戶在ActivityB時按HomeButton,然後他想重新打開應用程序,我想重新啓動活動ActivityA。那麼工作調用onStop();finish();ActivityBandroid活動生命週期

但是,當用戶進入從ActivityBActivityC,然後想回到ActivityBActivityB已經呼籲finish();所以用戶將出現在ActivityA

那麼如何使ActivityB可用,如果從ActivityC返回並完成它,如果用戶使用HomeButton?

+0

當用戶按下「HomeButton」時,意味着他們想要稍後返回到該Activity,這就是Android的行爲。就我所知,您無法重寫「HomeButton」。 – Carnal

+0

不要試圖通過使用生命週期方法來解決這個問題。 Android提供了一種機制來完成您想要的功能。看到我的答案。 –

+0

當從「B」移動到「C」活動時,不要調用finish()'按鈕 –

回答

4

您根系活力在清單(使用的發射器來啓動應用程序的一個)剛剛成立

android:clearTaskOnLaunch="true" 

。然後,當用戶使用您的應用程序時,只要他按HOME鍵,您的任務將被剝離回根(啓動)活動。

+0

+1,及時)。對我來說是最好的答案,但問題似乎有點不同) – Daler

0

不要調用方法完成()在ActivityB

看一看herehere

不要自己調用onStop()。這些方法是生命週期方法,由android系統調用。