2016-11-13 87 views
0

我正在从亚行外壳的应用程序是这样的:终止进程后,在亚行一段时间后外壳

adb shell am start -n mypackage/.MainActivity 

我需要10秒钟后自动终止应用程序并启动其他应用程序。 我想要做这样的事情:

adb shell timeout -t 10 am start -n mypackage/.MainActivity 

但不幸的是,这是行不通的。

输出:

/系统/ bin/sh的:超时没有发现

有什么办法,使这项工作?

回答

0

使用以下

start adb shell am start -n mypackage1/.MainActivity 
timout /t 10 
kill mypackage1 
start adb shell am start -n mypackage2/.MainActivity 

More Info here

+0

我从Windows 10运行它。尝试'超时10'而不是'睡眠10'。但它仍然不起作用。除非第一个完成,否则'timeout 10'不会执行。 –

+0

你开始意图后是否尝试过超时?即流程应该启动包,暂停一段时间,杀死启动的包,启动另一个包。 –

+0

是的,我试过你的脚本,只是改变了'睡眠10'。问题是命令窗口在执行'timeout 10'之前等待第一个进程结束。所以它永远等待。 –

0

您可以使用设备本身上运行sleep命令:

adb shell "am start -W -n mypackage1/.MainActivity; sleep 10; am force-stop mypackage1" 
adb shell "am start -W -n mypackage2/.MainActivity" 

看来,应用程序,你正在试图起动/停止不设计正确。在这种情况下,请执行:

adb shell "(sleep 10; am force-stop mypackage1) & am start -n mypackage1/.MainActivity" 
adb shell "am start -n mypackage2/.MainActivity" 
+0

你能告诉我什么-W是为了什么?该方案无限期地等待。 “睡眠10”永远不会执行。 –