在Android应用中,我试图开发应用程序在启动运行命令时通过Receiver onReceive()
方法中的两个函数运行一些shell命令,但我有两个问题:
executeCommand()
,但由于我的executeCommand()
函数的代码包含Process.waitFor()
,因此接收器中的某些内容超时并且没有&# 39; t总是执行所有命令。 Process.waitFor()
所有命令都被执行,但由于第一个命令尚未返回结果,它们表示错误。 有没有办法延长等待时间?只运行一个命令序列而不是三个单独的命令会减少Process.waitFor()
的总时间?
答案 0 :(得分:2)
BroadcastReceiver documentation特别建议不要在onReceive()
调用的主线程上执行长时间运行的命令。更好的解决方案是创建一个IntentService
来处理shell命令并按顺序执行它们。这不会阻止BroadcastReceiver
,甚至应该提高启动速度。