Android Shell命令在启动时执行

时间:2013-03-17 23:34:17

标签: android root

在Android应用中,我试图开发应用程序在启动运行命令时通过Receiver onReceive()方法中的两个函数运行一些shell命令,但我有两个问题:

  1. 第一个函数执行三个单独的命令,其中三个调用executeCommand(),但由于我的executeCommand()函数的代码包含Process.waitFor(),因此接收器中的某些内容超时并且没有&# 39; t总是执行所有命令。
  2. 第二个函数命令应在执行前三个shell命令后执行并返回结果,但这并不会发生。如果我删除Process.waitFor()所有命令都被执行,但由于第一个命令尚未返回结果,它们表示错误。
  3. 有没有办法延长等待时间?只运行一个命令序列而不是三个单独的命令会减少Process.waitFor()的总时间?

1 个答案:

答案 0 :(得分:2)

BroadcastReceiver documentation特别建议不要在onReceive()调用的主线程上执行长时间运行的命令。更好的解决方案是创建一个IntentService来处理shell命令并按顺序执行它们。这不会阻止BroadcastReceiver,甚至应该提高启动速度。