android活动开始/停止顺序

时间:2013-05-29 15:11:36

标签: android android-activity

我有一个可能看起来很学术的问题,但我在实践中遇到过。我们的应用包含两项活动A(根)和B

A - > startActivity(A.this, B.class) - > B - > finish() - > A

我已将Log消息添加到这些方法的onStart()onStop()方法中。当我使用BA返回finish()时,我得到:

05-29 18:48:03.559:D / MYLOG(7075):A开始

05-29 18:48:03.919:D / MYLOG(7075):B停止

如您所见,A开始和B停止之间的间隔为360毫秒。但是这个间隔可以任意大。我有一个应用程序,这个间隔大约是10秒。所以我有A处于活动状态且B即将死亡但仍然活着的时间间隔。如果(在区间内)我使用B再次启动startActivity(A.this, B.class)会发生什么?

我的实际情况更复杂,因为B是一个NativeActivity用于OpenGL游戏而我的应用程序只是在C ++代码中崩溃,因为游戏不希望在完成之前重新启动。

无论如何,起初我想知道Android大师对我的基本问题的看法,即:当一个人试图开始“垂死”活动时会发生什么?

1 个答案:

答案 0 :(得分:0)

不可能像你说的那样“开始'死亡'活动”。

在B中的startActivity(A.this, B.class)之后调用finish()只会创建一个活动B的新实例。

还有一点需要注意的是onStop()并不表示活动已经死亡或死亡。请参阅下面的onStop()onRestart()可能是下一步。您应该查看Android Lifecycle

Android Lifecycle

如果存在问题,例如onStop()onDestroy()中的代码需要按顺序运行,我建议您将其移至其他地方。