了解 Activity 和服务的生命周期

Understanding the Life cycle of Activity and Service

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

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

现在我有两个问题

1) Android OS 是清除整个应用程序(屏幕 A 和屏幕 B)的内存还是只清除我的屏幕 B?

2) 我的服务也会被清零还是会继续运行?如果它被清除,那么带有通知的前台服务可以帮助我克服这个问题吗?

任何帮助将不胜感激。

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

  2. 如果activity被破坏,里面的服务也会被破坏

Now when the user minimizes the app and the service is running and since Android OS is short of memory then it clears the App.

当Android内存不足时,它会终止一个进程。

Does the Android OS clear the memory of the whole app (Screen A & Screen B) or only my Screen B?

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

Will my service also be cleared or will it continue to run?

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

If it is cleared then can a foreground service with a notification help me to overcome this?

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