【问题标题】:android.os.Process.killProcess(pid) did restart the processes againandroid.os.Process.killProcess(pid) 确实再次重新启动了进程
【发布时间】:2014-04-23 04:44:32
【问题描述】:

killprocess 方法确实会杀死进程,但为什么进程会再次重新启动,以及为了不再次重新启动进程应该做什么。这是我的代码。

ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> services = manager.getRunningAppProcesses();
for (RunningAppProcessInfo info : services) {   
    int service1name = info.pid;
    android.os.Process.killProcess(service1name);
}

感谢您的关心。

【问题讨论】:

    标签: android process


    【解决方案1】:

    其实进程kill是通过killProcess重启进程,因为android os假设进程已经因为crash而被关闭,然后再次重启。我发现我们可以使用更高优先级的 am(活动管理器)来终止进程。示例可以在这里找到:

    try {
    
                    Log.d("Application all process", "killing++");
                String killCommand = 
                            "am force-stop com.nil.android.ssd";
                    runAsRoot(new String[]{killCommand},true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
    
    
        public static void runAsRoot(String[] cmds, boolean shouldExit) {
            try {
                Process p = Runtime.getRuntime().exec("su");
                DataOutputStream os = new DataOutputStream(p.getOutputStream());
                for (String tmpCmd : cmds) {
                    os.writeBytes(tmpCmd + "\n");
                }
                if (shouldExit) {
                    os.writeBytes("exit\n");
                }
                os.flush();
            } catch (Exception iOException) {
                iOException.printStackTrace();
            }
        }
    

    【讨论】:

      【解决方案2】:

      停止所有运行Activitiy和Service,否则,只需使用android.os.Process.killProcess(android.os.Process.myPid());进程将重新启动

      【讨论】:

        【解决方案3】:

        我也遇到过类似的问题

           this.finishAffinity();
        

        这从 API 级别 16 开始支持。

        【讨论】:

          猜你喜欢
          • 2016-09-29
          • 2020-05-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多