0

在桌面 Java 应用程序中,我能够通过一些不需要编译的脚本自行重新启动我的 Java 应用程序(这样我们就可以远程在其上添加一些额外的东西):

桌面脚本:restartme.sh

#!/bin/bash
export DISPLAY=:0.0 
pkill java
java -cp SystemV.jar Main.Boot 0x01 &
# on the fly add new stuffs depending on the situations..
iperf -s -p 65000 & 
convert -size 800x600 xc:transparent -font Bookman-DemiItalic -pointsize 50 -draw "text 25,90 ' inactive.'" -channel RGBA -blur 0x6 -fill steelblue -stroke white -draw "text 10,90 ' inactive.'" -antialias /var/www/html/video/now.jpeg;
x11vnc -forever -passwd x1x &

桌面应用:

system("/var/tmp/restartme.sh &");

  public static String system(String cmds) {
    String value = "";
    try {
      String cmd[] = { "/bin/sh", "-c", cmds};
      Process p = Runtime.getRuntime().exec(cmd);
      p.waitFor();
      BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
      String line = reader.readLine();
      while (line != null) {
        value += line + "\n\r";
        line = reader.readLine();
      }
    } 
    catch (IOException ioe) {
      ioe.printStackTrace();
    } 
    catch (InterruptedException ie) {
      ie.printStackTrace();
    }
    return value;
  }

我如何在 Android 中重新启动,例如桌面?我可以使用默认的 BASH 或其他默认的内置 Android shell 脚本吗?还是有其他方法可以即时执行一些未编译的脚本?

4

1 回答 1

0

取决于您要启动的任务类型。AFAIK,尽管用户离开了它,但您不能强制您的活动在特定条件下全屏返回(这也会让我作为用户感到恼火)。如果您需要在系统重启后再次启动后台进程,请阅读 Android 中的消息传递系统(Intent (class) / Intent (Docu))。您可以注册有关系统事件的某些消息,并在您的处理程序代码中启动一个例如执行某些后台工作的服务。
您可能希望查看示例以获取实际操作示例。

不存在类似 Bash-Script 的方法,afaik。

于 2013-07-13T10:41:10.600 回答