如何模拟被 Android 系统杀死的服务
How to simulate a service killed by the Android system
开发的时候想测试一下系统kill服务的情况。这是因为在 Android Wear 和手持设备之间通信时我失去了连接。而且我觉得跟系统杀了一些服务有关
有人对如何解决这个问题有什么建议吗?
如果您在 Android Studio 中开发,而您 运行 您的应用程序在 android wear side 尝试点击控制台中显示的终止按钮。
当您点击此按钮时,此应用中的所有线程+服务+活动都将被销毁。如果您的服务类型为 "STICKY",它将在您终止应用程序后自行启动。
cdlc 的答案有效,但另一种方法是,如果您在 Android Studio 中进行开发,您可以转到 DDMS:Tools->Android->Android Device Monitor 并按那里的停止按钮,您还会看到粘性服务重新启动。
如果您在 Android phone 上选中开发者选项,将会有一个选项显示 运行 服务。在该选项下,您可以选择停止 运行.
的任何服务
从 2020 开始,我们必须手动完成(因为我们不再有 Android 监视器或 DDMS)。
这是在 Linux 上测试的。您需要设备的 root 权限 (how to get root for an AVD)。
- 获取PID(第一个数字):
adb shell ps | grep -i <package-or-part-of-it>
- 终止进程:
adb shell kill <your-PID>
开发的时候想测试一下系统kill服务的情况。这是因为在 Android Wear 和手持设备之间通信时我失去了连接。而且我觉得跟系统杀了一些服务有关
有人对如何解决这个问题有什么建议吗?
如果您在 Android Studio 中开发,而您 运行 您的应用程序在 android wear side 尝试点击控制台中显示的终止按钮。
当您点击此按钮时,此应用中的所有线程+服务+活动都将被销毁。如果您的服务类型为 "STICKY",它将在您终止应用程序后自行启动。
cdlc 的答案有效,但另一种方法是,如果您在 Android Studio 中进行开发,您可以转到 DDMS:Tools->Android->Android Device Monitor 并按那里的停止按钮,您还会看到粘性服务重新启动。
如果您在 Android phone 上选中开发者选项,将会有一个选项显示 运行 服务。在该选项下,您可以选择停止 运行.
的任何服务从 2020 开始,我们必须手动完成(因为我们不再有 Android 监视器或 DDMS)。
这是在 Linux 上测试的。您需要设备的 root 权限 (how to get root for an AVD)。
- 获取PID(第一个数字):
adb shell ps | grep -i <package-or-part-of-it>
- 终止进程:
adb shell kill <your-PID>