2016-11-13 63 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」永遠不會執行。 –

相關問題