2011-08-27 68 views
1

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

但是,当我点击第三个选项卡,然后应用程序的行为是不同的,活动,这是去背景,是完全破坏(它通过onPause()onStop()onDestroy())。

任何想法为什么有差异的行为?当用户切换到应用程序中的其他活动时,是否有办法强制活动保持暂停状态?

感谢 斯登

回答

3

此行为甚至可以在另一个设备或任何其他上下文(不同数量的可用内存等)上有所不同。

你必须保证当Activity会前景

  • onPause()被称为当Activity会的背景下,

    • onResume()叫,

    ,这是唯一的保证你有。 (有关Activity生命周期here的更多详细信息)。

    因此,您可以绝对不要假设电话onStop()onDestroy()。他们可能会被调用或不是每次你从一个标签切换到另一个时,你的应用程序需要能够处理这个。

  • +0

    有用,至少可以说 –

    1

    为什么第一个活动被破坏可能因缺乏堆内存引起的原因。如果Android的内存不足,它会杀死后台活动。这种行为不受开发人员的影响,因为如果没有足够的内存来保持事情发展,整个系统会变慢并崩溃。