不保留活动和后台进程限制有什么区别。从开发者的角度?

Ash*_*win 5 android

我知道检查don't keep activities开发人员选项会使 android 系统在用户离开屏幕后立即终止活动 - 因此开发人员必须通过覆盖保存活动状态来处理此问题, onSaveInstance
但我不明白Background process limit. 它如何影响应用程序?作为开发人员,我选择“无后台进程”时该如何处理?

use*_*304 4

这个问题也与我非常相关。作为开发人员,您需要测试边缘情况,“不保留活动”和“无后台进程”选项都会使您的应用程序表现不同。

以下是我收集的有关这些选项的信息:

不保留活动:活动被销毁并重新创建。这意味着你将经历onCreate等等onRestoreSaveInstance。这与旋转屏幕等配置更改的行为几乎相同。但是:您确实将变量保存在内存中。

示例:您有一个 User 对象,其 String name = "John" 是您在登录用户时设置的。如果您user.getName()在重新创建活动时尝试访问(并且它没有保存在 Bundle 中),您仍然得到他的名字回来了。

无后台进程:与“不保留活动”完全相同,并且清除所有变量。

示例:user.getName()这次 will 返回 null。

底线:用户最常见的情况似乎是“不保留活动”。但是“无后台进程”也应该进行测试,因为它可能会给出不同的结果,并且我猜可能会发生(有兴趣了解这方面的统计数据)