0
命令執行在Android應用我想開發應用程序,在通過接收機onReceive()
方法內的兩個功能啓動運行命令運行一些shell命令,但我有兩個問題:的Android殼牌在啓動
- 第一個函數執行三個分開的命令,其中三個調用爲
executeCommand()
,但由於在我的代碼executeCommand()
中包含Process.waitFor()
函數,接收器中的某些內容超時並且並不總是執行所有命令。 - 第二個函數命令應該在執行前三個shell命令後執行並返回一個結果,而這種情況不會發生。如果我刪除
Process.waitFor()
所有的命令都會執行,但由於第一個命令還沒有返回結果,所以它們的行爲是錯誤的。
有沒有辦法延長等待時間?只運行一個連續的命令而不是三個分開的命令會減少Process.waitFor()
的總時間?
該文檔明確指出,您應該*不*在onReceive調用的主線程上執行長時間運行的命令。您應該創建一個'IntentService'來處理shell命令並按順序執行它們。看到這裏:http://developer.android.com/reference/android/content/BroadcastReceiver.html#onReceive(android.content.Context,android.content.Intent) – 323go 2013-03-18 01:30:45
這解決了我的問題,如果你會做出答案我很樂意接受它。謝謝,我錯過了這些路線。 – Vektor88 2013-03-18 02:42:17
很高興我能幫到你。我擴大了一點;它可以在未來幫助其他人。 – 323go 2013-03-18 02:47:45