假设我有多个活动,例如屏幕A(主屏幕)和屏幕B。
屏幕A打开屏幕B,然后屏幕B启动向屏幕B发送更新的服务。现在,当用户最小化该应用程序且该服务正在运行时,并且由于Android操作系统内存不足,它将清除该应用程序。
现在我有两个问题
1)Android操作系统会清除整个应用程序(屏幕A和屏幕B)的内存还是仅清除我的屏幕B的内存?
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)
如果Android OS需要其他应用程序的内存,它将清除整个应用程序。
如果活动被破坏,其中的服务也将被破坏。