了解活动和服务的生命周期

时间:2019-05-28 21:00:42

标签: android android-service android-lifecycle activity-lifecycle android-memory

假设我有多个活动,例如屏幕A(主屏幕)和屏幕B。

屏幕A打开屏幕B,然后屏幕B启动向屏幕B发送更新的服务。现在,当用户最小化该应用程序且该服务正在运行时,并且由于Android操作系统内存不足,它将清除该应用程序。

现在我有两个问题

1)Android操作系统会清除整个应用程序(屏幕A和屏幕B)的内存还是仅清除我的屏幕B的内存?

2)我的服务还会被清除还是会继续运行?如果已清除,则带有通知的前台服务可以帮助我解决此问题吗?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

  

现在,当用户最小化应用程序并且服务正在运行时,由于Android操作系统内存不足,它将清除应用程序。

Android内存不足时,它将终止进程。

  

Android OS是否清除整个应用程序(屏幕A和屏幕B)或仅我的屏幕B的内存?

默认情况下,您的应用使用单个进程。因此,当Android终止您的流程时,您应用程序的所有内容都会消失。

  

我的服务还会被清除还是会继续运行?

默认情况下,您的应用使用单个进程。因此,当Android终止您的进程时,您的服务也会消失。一些开发人员选择将他们的服务放在一个单独的过程中(通过android:process清单属性),以帮助该服务保持更长的时间,但这会使您的应用构建起来更加困难。

  

如果将其清除,那么带有通知的前台服务可以帮助我解决此问题吗?

前台服务使Android终止该服务进程以释放系统RAM的可能性大大降低。但是,you should only have a service running when it is actively delivering value to the user

答案 1 :(得分:2)

  1. 如果Android OS需要其他应用程序的内存,它将清除整个应用程序。

  2. 如果活动被破坏,其中的服务也将被破坏。