1

我有 2 个应用程序 A 和 B。两者都只有一个活动。应用程序 A 启动应用程序 B。当我关闭 B 中的活动时 - 我返回 A。如何将应用程序 B 保留在内存中?如果我用 finish() 关闭 B 中的活动 - B 仍然是我的记忆。这是否意味着下次Android将使用它或启动另一个实例?

更新

如果应用程序 B 在清单中设置了单个任务或单个活动?或者 B 的行为可能取决于 A 的意图?

4

1 回答 1

1

当您问“如何将应用程序 B 保存在内存中?”时,您到底是什么意思?

如果您真的在谈论 2 个单独的应用程序,那么 Android 将在单独的进程中启动每个应用程序。每个进程都有自己的虚拟机。如果应用程序 A 中的活动启动应用程序 B 中的活动,那么您将有 2 个正在运行的进程。一旦 B 中的活动调用finish(),它就完成了。稍后,Android 将调用onDestroy()B 中的活动,然后在稍后的某个时间,Android 将终止 B 正在运行的进程。Android 将在需要内存时终止该进程,或者只要它决定它想要,基于它用于终止进程的任何内部标准。

一旦用户从应用程序 B 返回到应用程序 A,如果用户再次在应用程序 B 中启动活动,Android 将在应用程序 B 正在运行的进程中创建该活动的新实例。如果该进程已经被 Android 杀死,那么 Android 将为应用程序 B 创建一个新进程,然后在该进程中创建一个新的 Activity 实例。

一旦一个活动被调用finish(),它将永远不会被重用。它完成了。它已经死了。它已准备好进行销毁和垃圾收集。您launchMode为活动设置的内容或在Intent.

我希望这能回答你的问题)。

于 2012-05-31T16:44:16.493 回答