在桌面 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 脚本吗?还是有其他一些方法可以即时执行一些未编译的脚本?
取决于您要启动的任务类型。 AFAIK 你不能强制你的 Activity 在特定条件下全屏返回,尽管用户离开了它(这也会让我作为用户烦恼)。如果您需要在例如之后再次启动后台进程系统重启,阅读 Android 中的消息系统 ( Intent (class)/Intent (Docu) )。您可以注册有关系统事件的某些消息,并在您的处理程序代码中启动一个例如做一些后台工作的服务。
你可能想看看 this一个动手的例子。
不存在类似 Bash 脚本的方法,afaik。
我是一名优秀的程序员,十分优秀!