Ваш вызов exec
будет выполнен только один раз, а его результат будет сохранен в переменной P
.Вызов waitFor
для этого неоднократно не выполнит его снова, он просто читает один и тот же результат снова и снова.
Вы можете заключить вызов в лямбду и вызвать этот лямбда в цикле, чтобы выполнить его нескольковремена:
val P: () -> Process = {
Runtime.getRuntime().exec(
arrayOf(
"su", "-c", "" +
"monkey -p com.ubercab -c android.intent.category.LAUNCHER 1"
)
)
}
while (x < 10) {
Log.i("app", x.toString())
P().waitFor()
x += 1
}
Или вы можете поместить его в обычную функцию:
fun p(): Process {
return Runtime.getRuntime().exec(
arrayOf(
"su", "-c", "" +
"monkey -p com.ubercab -c android.intent.category.LAUNCHER 1"
)
)
}
while (x < 10) {
Log.i("app", x.toString())
p().waitFor()
x += 1
}