【问题标题】:Android low memory killer & application back stackAndroid 低内存杀手 & 应用程序回栈
【发布时间】:2016-08-15 11:03:32
【问题描述】:

Android 系统可能会在系统内存不足时决定移除一个应用程序进程,以便为更重要的工作(即启动属于另一个应用程序的服务)回收资源。但是,我不确定Android系统是否可以在不触及相应应用进程的情况下仅删除应用程序任务(回栈)?

如果可能,系统也有可能通过调用每个 onDestroy() 回调来销毁后台堆栈活动。那么,我们如何才能像在服务中捕获它一样捕获此任务删除(通过 onTaskRemoved )

谢谢

【问题讨论】:

标签: android process task back-stack


【解决方案1】:

当 Android 想要回收资源时(或者只是因为 Android 喜欢整理),它通常会杀死所有没有托管前台活动或前台服务的操作系统进程。 Android 通过实际杀死操作系统进程来做到这一点,因此onDestroy() 不会在这些操作系统进程中处于活动状态的任何组件上被调用。你不会被警告这一点,所以没有办法“捕捉”这种行为。

【讨论】:

  • 所以,那是非常残忍的杀戮。
  • 是的,您的应用需要能够优雅地处理这个问题,否则您的用户会立即卸载您的应用。
  • onStop 无论如何都会触发,我说得对吗?
  • 是的。从 Android 3.0 (Honeycomb) 开始,onStop() 保证在操作系统进程被杀死之前被调用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多