java - 已经开始 Activity 后 startActivity() 的任何后果?

标签 java android android-studio

假设我有 Activity A 和 Activity B。

在 A 中,我有一个按钮,单击它会运行以下代码

startActivity(new Intent(this, ActivityB.class));

在 B 中,我有一个按钮,单击它会运行以下代码

startActivity(new Intent(this, ActivityA.class));

因此,当应用启动并且用户执行以下操作时:

  • 点击 Activity A 中的按钮(他转到 Activity B)
  • 点击 Activity B 中的按钮(他返回 Activity A)
  • 再次点击 Activity A 中的按钮(再次转到 Activity B)

在这种情况下,Activity A 和 B 是否会占用内存,因为它们每次都启动,或者 Android 是否足够智能,知道一个 Activity 已经启动并且只需要将其放在堆栈顶部?

所以换句话说,如果内存确实被阻塞了,是否有类似的东西:

if(activity has already started)
{
   doNotStartActivityButSimplyPutItAtTop();
}
else
{
   startActivity(new Intent.....);
}

最佳答案

是的,您的假设是正确的,android 能够管理这些 Activity ,并且它们会为此维护适当的堆栈。

如果您只有两个 Activity,您可以使用单顶启动器模式,这样只有两个 Activity 保留在堆栈中。

关于java - 已经开始 Activity 后 startActivity() 的任何后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40480145/

相关文章:

java - 运行 Spring Boot 应用程序时出现兼容版本问题,但在 pom 中只有版本

java 猜谜游戏可以运行但运行不正确

安卓开发者文档 : download?

android - 如何在平板电脑上运行可在智能手机上运行的应用程序?

android - 我可以在不使用 ScrollView/ListView 的情况下使用 Pull to Refresh 吗?

java - 什么是类的客户

java - 在 OSGi 容器中为 Jersey-Grizzly 服务器内的 Rest 服务配置响应对象(使用 Jersey 1x 预防 CORS 错误)

java - 从 Windows 8 中提取 adt-bundle-windows-x86_64-20140702 时出现此错误

android - 找不到符号类指南

java.io.FileNotFoundException : open failed: EROFS (Read-only file system) 错误