首页 > 解决方案 > 了解 Activity 和 Service 的生命周期

问题描述

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

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

现在我有两个问题

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

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

任何帮助将不胜感激。

标签: androidandroid-serviceandroid-lifecycleactivity-lifecycleandroid-memory

解决方案


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

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

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

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

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

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

如果它被清除,那么带有通知的前台服务可以帮助我克服这个问题吗?

前台服务大大降低了 Android 终止该服务进程以释放系统 RAM 的可能性。但是,您应该只在服务主动向用户交付价值时才运行该服务


推荐阅读