我有2个活动(A和B),他们有2个按钮可以在两者之间进行切换。尽管使用FLAG_ACTIVITY_REORDER_TO_FRONT调用了onCreate
- 一个OnCreate中
- 乙的OnCreate
- 一个OnCreate中
- 一个的onResume
什么我想做的事向B发送意图一OnCreate中后不宜叫,但在这一点上它确实。为了克服这一点,我找到了FLAG_ACTIVITY_REORDER_TO_FRONT(from here),并认为它只能调用onresume,但它没有。
我有2个活动(A和B),他们有2个按钮可以在两者之间进行切换。尽管使用FLAG_ACTIVITY_REORDER_TO_FRONT调用了onCreate
什么我想做的事向B发送意图一OnCreate中后不宜叫,但在这一点上它确实。为了克服这一点,我找到了FLAG_ACTIVITY_REORDER_TO_FRONT(from here),并认为它只能调用onresume,但它没有。
FLAG_ACTIVITY_REORDER_TO_FRONT
完全符合您的想法。但是,如果你开始ActivityA
然后ActivityA
开始ActivityB
,并呼吁本身finish()
,然后ActivityB
开始ActivityA
与具有FLAG_ACTIVITY_REORDER_TO_FRONT
会有没有ActivityA
实例带来正面的意向时。在这种情况下,Android将简单地创建一个新的。我只能假设那是你所看到的。
谢谢大卫,但完成()永远不会被调用。我只需按回按钮即可进入ActivityA。我无法理解的是,如果我通过主页按钮离开活动,它就是我想要做的。所以我想知道后退和主页按钮之间有什么区别?如果你有一些时间,你能解释一下吗?另一个问题是onSaveInstanceState在按下home按钮时会出现,为什么按下后退按钮时会起作用? – 2013-03-06 08:16:07
对不起,我还是不明白。如果您通过HOME按钮离开活动,然后回来,它应该显示您完全相同的活动。例如,如果屏幕上有ActivityA并按HOME按钮,然后再次启动应用程序,则应该看到ActivityA。请张贴您的清单,也许问题在那里。 – 2013-03-06 08:27:33
BACK按钮用于完成活动并返回到任务活动堆栈中的上一个活动。HOME按钮只是将整个任务堆栈推入后台(它不会完成当前活动)。 – 2013-03-06 08:28:46
FLAG_ACTIVITY_REORDER_TO_FRONT
更改活动历史记录。如果在先前访问过的活动(在任务中)中找到请求的活动,则清除此活动的较早历史记录。所以,在按下按钮的同时,用户不会在任务中遇到此活动。
此标志不会影响对onCreate()
的调用,如果任务中没有任何活动(未加载或销毁),将调用onCreate()
来创建它。
你不能只取消onCreate。如果B是全屏活动,则android可以终止A活动,并在您尝试使用FLAG_ACTIVITY_REORDER_TO_FRONT标志重新启动它并将其称为onCreate方法时重新创建该活动。如果您尝试将它放在前面时,活动A仍然在活动中,则不应调用onCreate方法。
也许在你的情况下,你应该尝试使用片段?
为什么不直接发送一个布尔内的布尔值到另一个活动。如果它是false,请不要在onCreate()中运行代码。编辑:o nvm我想你想要的现有对象。 – 2013-03-05 12:46:47
如果您的活动暂停,系统会调用'onCreate()'。 – 2013-03-05 12:50:55
确实有很多替代方案,但我想学习逻辑。我的意思是什么是为flag_activity_reorder_to_front? – 2013-03-05 12:51:12