killBackgroundProcesses不适用于与一个包相关的多个进程?

时间:2013-08-27 06:52:35

标签: android process

我尝试使用killBackgroundProcesses()重新启动与其他应用程序相关的几个进程。 我添加了正确的使用权限,运行系统高于2.2。 我想重新启动的应用程序在其清单中定义了几个进程,如: <receiver android:name=".remote.abcReceiver" android:process=":sub_process_a"> <receiver android:name=".remote.defReceiver" android:process=":sub_process_b">

因此,此应用程序中有三个与同一个程序包相关的进程,例如“com.example.restartme”

我正在使用以下代码:

public static void killer() {
ActivityManager am = (ActivityManager)AppContext.getContext().getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> list= am.getRunningAppProcesses();
    for (int i = 0; i < list.size(); i++) {
        ActivityManager.RunningAppProcessInfo apinfo = list.get(i);
        String tpName = apinfo.processName;
        if (tpName.contains("com.example.restartme"){

            String[] pkgList = apinfo.pkgList;
            Process.killProcess(apinfo.pid);
            // Process.killProcess(apinfo.pid);
            for (int j = 0; j < pkgList.length; j++) {
                am.killBackgroundProcesses(pkgList[j]);
                LogUtil.i("ActivityManager", "Killing process package:"
                        + pkgList[j]);

            }
        }
    }
}

从logcat我可以看到“Killing process package:com.example.restartme”被打印了三次,但是当我使用ps检查进程时,我只能看到主进程被杀死并重新启动,但是两个子进程“ com.example.restartme:sub_process_a“和”com.example.restartme:sub_process_b“保持不变,没有任何变化。

之前有人遇到过这个问题吗?提前谢谢。

0 个答案:

没有答案