0

我在某些设备上遇到了我的应用程序的奇怪行为。每次我的应用程序被最小化并重新打开时,我的应用程序都会从​​头开始重新启动。这只发生在某些设备上,我不确定为什么会这样。有没有人遇到过这种问题?请让我知道解决方案。

4

2 回答 2

5

这是由于某些设备中的内存处理 - 那些内存低且皮肤较厚的设备会更快地破坏后台应用程序,这样它们就不会耗尽内存。

您不能保证您的应用程序在任何时候都将保持活动状态(除非它是一项服务),因此您必须围绕此设计应用程序。

于 2012-05-16T09:00:51.927 回答
1

此行为可能是由于这些设备上的内存不足。但是,您可以尝试做的是设置android:alwaysRetainTaskState="true"清单中的第一个活动。即使在内存不足的情况下,此属性也会尽力将应用程序的活动保留在内存中。

根据开发人员文档

android:alwaysRetainTaskState

Activity 所在任务的状态是否将始终由系统维护——如果是,则为“true”,如果允许系统在某些情况下将任务重置为其初始状态,则为“false”。默认值为“假”。该属性仅对任务的根活动有意义;它被所有其他活动忽略。

通常,当用户从主屏幕重新选择该任务时,系统会在某些情况下清除任务(从根活动上方的堆栈中删除所有活动)。通常,如果用户在一定时间内(例如 30 分钟)没有访问任务,则会执行此操作。

但是,当此属性为“true”时,用户将始终返回到任务的最后状态,无论他们如何到达那里。这很有用,例如,在诸如 Web 浏览器之类的应用程序中,其中有很多用户不想丢失的状态(例如多个打开的选项卡)。

于 2012-05-16T09:01:34.850 回答