保持活动在暂停状态- Android



我有一个应用程序,有3个标签,每个标签一个活动。当我在前两个活动之间切换时,即将进入后台的活动通过onPause()状态,而新的活动变为活动并调用onResume()。这很好,因为这两个活动都有一个复杂的UI,呈现它们需要2-3秒,但是当它们保持在暂停状态时,它们很快就会恢复。

但是当我点击第三个标签,那么应用程序的行为是不同的,活动,这将是后台,被完全破坏(它通过onPause(), onStop()onDestroy())。

你知道为什么会有不同的行为吗?当用户切换到应用程序中的另一个活动时,是否有一种方法可以强制活动保持在暂停状态?

谢谢STeN

这种行为在其他设备或任何其他上下文中(不同的可用内存量等)甚至可能是不同的。

你有保证

  • onResume()Activity进入前台时被调用
  • onPause()Activity进入后台时被调用,

,这是你唯一的保证。(Activity生命周期的更多细节在这里)。

所以你绝对不能对onStop()onDestroy()的调用做任何假设。当你从一个选项卡切换到另一个选项卡时,它们可能被调用,也可能不被调用,你的应用程序需要能够处理这种情况。

第一个活动被销毁的原因可能是由于缺乏堆内存。如果Android内存不足,它会杀死后台活动。这种行为不能被开发人员影响,因为如果没有足够的内存来保持运行,整个系统会变慢并崩溃。

最新更新