TShopping

標題: RootShell 如何等command做完再執行(waitFor) [打印本頁]

作者: woff    時間: 2018-3-23 00:45
標題: RootShell 如何等command做完再執行(waitFor)
  1. Command cmd = new Command(158, false, pathstring);
  2.             Shell shell = Shell.startRootShell(158,158);
  3.             shell.add(cmd);
  4.             waitForCommand(cmd);
複製代碼
Command cmd = new Command(158, false, pathstring);
handleEnable = false
這樣Thread才不會咬住

158只是int 整數,隨便填


一定要
Shell shell = Shell.startRootShell(158,158);
shell.add(cmd);

後,再執行 cmd

不要用範例的
  1. Command cmd = new Command(pathstring);
  2. Shell.startRootShell().add(command);
複製代碼
操作會變得很慢然後建waitForCommand function

  1. private static boolean waitForCommand(Command cmd) {
  2.         while (!cmd.isFinished()) {
  3.             synchronized (cmd) {
  4.                 try {
  5.                     if (!cmd.isFinished()) {
  6.                         cmd.wait(1);
  7.                     }
  8.                 } catch (InterruptedException e) {
  9.                     e.printStackTrace();
  10.                 }
  11.             }
  12.             if (!cmd.isExecuting() && !cmd.isFinished()) {
  13.                 Log.d("Debug", "Error: not complete");
  14.                 return false;
  15.             }
  16.         }
  17.         return true;
  18.     }
複製代碼

參考文章
https://blog.csdn.net/andrexpert/article/details/53082397
https://www.programcreek.com/jav ... ell.execution.Shell
https://github.com/Stericson/Roo ... hell/RootShell.java








歡迎光臨 TShopping (http://www.tshopping.com.tw/) Powered by Discuz! X3.2