Android何时销毁Activity而不销毁整个进程?

3
我想了解并模拟Android何时调用我的活动的onDestroy(),而不销毁整个进程。我没有调用finish(),我希望让Android自己销毁我的活动。
根据活动生命周期文档
系统从不直接杀死一个活动来释放内存。相反,它会杀死运行该活动的进程,同时销毁进程中运行的所有其他内容。
但是Android活动文档说:
这种情况(onDestroy)可能发生是因为[...]系统暂时销毁此活动实例以节省空间。
那么到底是哪一种呢?Android是否在内存不足时销毁活动,还是只杀死整个进程?
我想模拟Android在不杀死整个进程的情况下终止活动的情况。我可以使用“不保留活动”开发者模式设置来模仿这种情况,但我想了解在现实世界中如何发生这种情况。

如果您使用的设备内存较低,并且您的应用程序具有活动堆栈系统,可以销毁(并保存实例状态)底部的活动以节省内存,同时仍然保持在应用程序进程中。 - Pawel
1
另一个常见的情况是屏幕方向的改变(Activity 在新的方向上被销毁并重新创建)。 - cactustictacs
1个回答

2
我想让Android自己销毁我的Activity。 Android不会这样做,除非是通过你的操作(例如finish())或用户的操作(例如后退导航、配置更改)。 那么是哪一个呢?前面那个(Android杀死进程而不是Activity)。请参见该女士撰写的答案。值得一提的是,还可以参见我十年前撰写的博客文章

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接