1

我试图弄清楚当Android应用程序因硬错误(特别是out_of_memory)崩溃时如何(或是否有可能)通过adb shell接受“强制关闭”对话框。我希望基本上用 bash 脚本循环一个应用程序,所以当它崩溃时我想重新启动它运行。这里缺少的步骤是我无法模拟按下对话框中间显示的“强制关闭”按钮。

同时,进程似乎并没有真正在运行(试图杀死 PID 不起作用),所以这有点奇怪,因为它似乎已经停止了,但是再次启动它(通过 adb shell am ...) 只是给了我'当前任务已被带到前面'。

任何想法将不胜感激!

4

2 回答 2

6

+1为UncaughtExceptionHandler的DarkXphenomenon

但是要终止进程,您应该使用am

am force-stop: force stop everything associated with <PACKAGE>.

am kill: Kill all processes associated with <PACKAGE>.  Only kills.
  processes that are safe to kill -- that is, will not impact the user
  experience.

例如:

adb shell am force-stop <YOUR.PACKAGE.NAME>
于 2012-07-16T19:24:06.200 回答
3

如果是您自己的应用程序,您可以添加UncaughtExceptionHandler并且不显示强制关闭对话框。如果没有,以下可能会起作用。

您也可以从 adb 中终止该进程。(信用

adb shell kill $(adb shell ps | grep YOUR.PACKAGE.NAME | awk '{ print $2 }')

之后,您可以使用adb shell am ...来重生该进程。

于 2012-07-16T18:46:14.233 回答