java - Android - 我如何重新启动自己运行的应用程序,并且需要自行重新启动?

标签 java android linux android-intent

在桌面 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。

关于java - Android - 我如何重新启动自己运行的应用程序,并且需要自行重新启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17629089/

相关文章:

javascript - 使用 application/json 优于 text/plain 的优势?

java - JPanel 中的重叠组件

android - 如何有圆角重复?

linux - 如何在 linux 上使用 ffmpeg 录制音频?

c - ENXIO 对于 i2c ioctl 意味着什么?

linux - 在同一台服务器上安装多个 sqlite

java - Java 中的动态绑定(bind)。使用 Parent 作为类型和 Child 作为对象有什么好处和缺点?

java - 使用微调器操作 URL

java - 安卓AES问题

java - 我设置方法的方式有问题吗?