2

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

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

我已经添加了日志消息onStart()onStop()这些方法。当我返回使用时B,我得到:Afinish()

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)

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

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

4

1 回答 1

0

正如您所说,不可能“开始一个‘垂死的’活动”。

在 B 中调用startActivity(A.this, B.class)afterfinish()只会创建 Activity B 的新实例。

另外需要注意的一件事是,onStop()绝不表示 Activity 已死或将死。见下文,onStop()onRestart()是一个可能的下一步。您应该查看Android 生命周期

安卓生命周期

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

于 2013-05-29T15:32:50.433 回答