2012-12-13 147 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系统调用。