【问题标题】:Android - How to restart system_process programmatically?Android - 如何以编程方式重新启动 system_process?
【发布时间】:2014-10-06 20:16:04
【问题描述】:

我有一个 android 设备,它将我的应用程序作为系统应用程序运行。在这个应用程序中有一个更新功能,它从互联网上下载新版本的 apk,然后覆盖设备上的 apk。之后我需要重新启动应用程序......这是我的问题,我尝试了很多方法:

finish();

Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName() );   
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
startActivity(i);

System.exit();

android.os.Process.killProcess(pid);

我注意到,如果我在 Eclipse 中停止 system_process,我的设备正在重新启动,应用程序正在升级并且我的应用程序的新版本正在运行。 所以我的问题是,如何以编程方式停止/重新启动 system_process?或者您有什么好主意来重新启动并运行我的新版本应用程序? 谢谢 :)

【问题讨论】:

  • 将这个 android.os.Process.killProcess(pid) 改成 --->android.os.Process.killProcess(android.os.Process.myPid());
  • 你好。如果我用 killProcess 杀死我的应用程序,它会进入死循环...... ActivityManager 会杀死进程然后加星,但它会抛出 NullPointerException,然后再次死亡......

标签: android restart


【解决方案1】:

谢谢。它会变魔术! :)

PowerManager pm = (PowerManager) this.getApplicationContext().getSystemService(Context.POWER_SERVICE);
pm.reboot("bootloader");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2014-02-16
    相关资源
    最近更新 更多