我的应用程序在手动关闭后仍处于活动状态
My app is still active after closing it manually
我正在处理遗留项目。此 Android 应用程序是安装在具有自定义 Android 操作系统的特定平板电脑型号中的系统应用程序。用户只能访问此应用程序,无法访问平板电脑的任何其他功能。所以屏幕上只有这个应用程序。
现在,客户想要在智能手机上打开该应用程序,而我正在进行此更新。我意识到当我手动关闭应用程序(从打开的应用程序屏幕向上滑动)时,该过程仍然存在。我可以在 shell 中看到此 运行 ps -A | grep myAppName
命令,甚至在几分钟后也是如此。我尝试使用其他应用程序,当应用程序关闭时进程消失了。
在 MainActivity
(启动器 activity)的 onDestroy
方法中,我做了这些事情:
- 停止
stopService(new Intent(this, MyService.class));
的所有服务。
- 停止一些
Timer
个对象。
我不知道还有哪些其他组件可以使应用程序保持活动状态。该应用程序有 BroadcastReceiver
s 和 LifecycleObserver
,但我不知道其中的一些是否可能是原因。我知道 Android 将应用程序保存在内存中并在必要时将其杀死,但我认为这个示例并非如此。你对此有什么想法吗?
在你的 onDestroy 函数中添加这段代码如何?
System.exit(0);
我正在处理遗留项目。此 Android 应用程序是安装在具有自定义 Android 操作系统的特定平板电脑型号中的系统应用程序。用户只能访问此应用程序,无法访问平板电脑的任何其他功能。所以屏幕上只有这个应用程序。
现在,客户想要在智能手机上打开该应用程序,而我正在进行此更新。我意识到当我手动关闭应用程序(从打开的应用程序屏幕向上滑动)时,该过程仍然存在。我可以在 shell 中看到此 运行 ps -A | grep myAppName
命令,甚至在几分钟后也是如此。我尝试使用其他应用程序,当应用程序关闭时进程消失了。
在 MainActivity
(启动器 activity)的 onDestroy
方法中,我做了这些事情:
- 停止
stopService(new Intent(this, MyService.class));
的所有服务。 - 停止一些
Timer
个对象。
我不知道还有哪些其他组件可以使应用程序保持活动状态。该应用程序有 BroadcastReceiver
s 和 LifecycleObserver
,但我不知道其中的一些是否可能是原因。我知道 Android 将应用程序保存在内存中并在必要时将其杀死,但我认为这个示例并非如此。你对此有什么想法吗?
在你的 onDestroy 函数中添加这段代码如何?
System.exit(0);