如何模拟被 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)。

  1. 获取PID(第一个数字):adb shell ps | grep -i <package-or-part-of-it>
  2. 终止进程:adb shell kill <your-PID>