我有一个可能看起来很学术的问题,但我在实践中遇到过。我们的应用包含两项活动A
(根)和B
。
A
- > startActivity(A.this, B.class)
- > B
- > finish()
- > A
我已将Log消息添加到这些方法的onStart()
和onStop()
方法中。当我使用B
从A
返回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大师对我的基本问题的看法,即:当一个人试图开始“垂死”活动时会发生什么?
答案 0 :(得分:0)
不可能像你说的那样“开始'死亡'活动”。
在B中的startActivity(A.this, B.class)
之后调用finish()
只会创建一个活动B的新实例。
还有一点需要注意的是onStop()
并不表示活动已经死亡或死亡。请参阅下面的onStop()
,onRestart()
可能是下一步。您应该查看Android Lifecycle
如果存在问题,例如onStop()
或onDestroy()
中的代码需要按顺序运行,我建议您将其移至其他地方。