2016-11-13 1 views
0

Я бегу приложение из оболочки ADB, как это:Прекратить процесс после того, как некоторое время в АБР оболочки

adb shell am start -n mypackage/.MainActivity 

Мне нужно, чтобы автоматически завершить приложение после 10 секунд и запустить другое приложение. Я пытаюсь сделать что-то вроде этого:

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

Но, к сожалению, это не работает.

Выход:

/системы/бен/ш: Тайм-аут не найден

Есть ли способ, чтобы сделать эту работу?

ответ

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

Я запускаю его из окон 10. Попробовал 'timeout 10' вместо' sleep 10'. но он все еще не работает. 'timeout 10' не выполняется, если первый не завершается. –

+0

вы пробовали таймаут после начала намерения? то есть поток должен начинаться с пакета, приостанавливать определенное время, убивать запущенный пакет, запускать другой пакет. –

+0

Да, я попробовал ваш скрипт, просто изменив 'sleep 10'. Проблема заключается в том, что окно команды ожидает завершения первого процесса перед выполнением «таймаута 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? программа ждет бесконечно. 'sleep 10' никогда не выполняется. –