除了具有更高优先级内存需求的应用程序之外,还有啥可以破坏系统的活动?
Posted
技术标签:
【中文标题】除了具有更高优先级内存需求的应用程序之外,还有啥可以破坏系统的活动?【英文标题】:What other can destroy Activity by the system than app with higher prio need for memory?除了具有更高优先级内存需求的应用程序之外,还有什么可以破坏系统的活动? 【发布时间】:2020-05-04 03:47:32 【问题描述】:android 的 Activity 生命周期又来了。我看了official life cycle diagram,我很困惑,因为它表明除了其他优先级更高的应用程序需要内存的情况之外,Android OS 会破坏 Activity 可能还有其他原因?
在onDestroy() section我看到只有两个原因:
-
正在结束(在致电
finish()
之后)
由于配置更改而被 Android OS 销毁
不过,该图表明系统可能想要销毁此 Activity 的其他一些原因,是否存在?
【问题讨论】:
【参考方案1】:一般来说,如果 Android 想要回收资源,它会杀死托管在后台的应用程序的操作系统进程。
但是,我们已经看到了这样的情况,Android 不会杀死整个操作系统进程,而是会选择性地销毁活动以回收资源。这似乎取决于制造商,并且可能已由特定制造商实施(无论出于何种原因)。在这种情况下,Android 将在调用了onStop()
的活动上调用onDestroy()
,即使Activity
没有调用finish()
。
我们不知道发生这种情况的确切原因,但我们肯定已经看到了。当用户从最近的任务列表中删除应用程序(通过滑动)并且应用程序在操作系统进程中有一个正在运行的Service
时,可能会发生这种情况。在这种情况下,Android 可能只是销毁所有活动,但让操作系统进程继续运行,以便不必重新启动Service
。
【讨论】:
以上是关于除了具有更高优先级内存需求的应用程序之外,还有啥可以破坏系统的活动?的主要内容,如果未能解决你的问题,请参考以下文章
java开发工具除了eclipse之外,还有那些啊?有那个比较好用啊?
除了通过 main 的 argv 之外,还有其他方法可以将用户参数传递给程序吗?
除了android中的活动之外,还有啥是调用网络类的好方法?