0

我有一个启动到Activity“A”的应用程序,它:-在第一次启动时,“A”将启动“B”,然后是我的 singleTask Activity“C”-在后续启动时,“A”检查Activity“C”上的静态标志,然后触发意图带回我的 singleTask Activity'C'。

我遇到了一个问题,在重新启动“A”时,它偶尔会将我带到“B”而不是“C”。我已将大量日志消息放入我Activity的“C”方法中(在调用 any finish()onStoponDestroy、等之前) onPauseonDestroy希望能及时找到“C”不再存在的时刻……但没有任何记录。我能想到的唯一可能的原因是我从“C”中引用了一个第三方库Activity,这可能会遇到一个没有传递回我的应用程序的错误。会是这样吗?

4

2 回答 2

0

您可以使用

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
于 2013-10-25T09:58:22.617 回答
0

Android 可以随时终止您的进程(当它不在前台时)。您可能看到的正是这样。你已经启动了你的应用,ActivityA 启动了 ActivityB,ActivityB 又启动了 ActivityC。现在用户去做其他事情(比如打电话或玩愤怒的小鸟)。稍后,他返回到您的应用程序(但您的应用程序的进程在后台被杀死)。Android 为您的应用程序创建一个新进程并创建一个新的 Activity A 实例。ActivityA 检查 ActivityC 中的静态变量,但它没有设置,因为 ActivityC 在新创建的进程中不存在。

于 2013-10-25T20:58:20.417 回答