0

我正在尝试在这里测试问题的答案虽然没有错误,但我试图看看它是否真的会杀死一个进程。我所做的是将我的设备设置为运行 Skype。我运行我的应用程序,但 Skype 仍然存在。

我想知道我在这里写的函数是否有问题?

谢谢。

public void removeProcess() {
    ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
    List<RunningServiceInfo> taskInfo = am.getRunningServices(100);

    Log.d("total_process", Integer.toString(taskInfo.size()));
    for (int i = 0; i < taskInfo.size(); i++) {
        Log.d("process_names", taskInfo.get(i).process);
        am.killBackgroundProcesses(taskInfo.get(i).process);
    }
    Log.d("total_process", Integer.toString(taskInfo.size()));
}
4

1 回答 1

0

您可以像这样杀死所有后台进程:

List<ApplicationInfo> packages;
PackageManager pm;
pm = getPackageManager();
packages = pm.getInstalledApplications(0);

ActivityManager mActivityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);

for (ApplicationInfo packageInfo : packages) 
{
    mActivityManager.killBackgroundProcesses(packageInfo.packageName);
}

但是有很多应用程序,例如电子邮件,谷歌地图立即开始重新启动的过程,可能Skype也这样做

于 2013-07-31T10:54:00.437 回答