我有一个包含两个进程的应用。第二个进程在创建活动时开始。在下面找到清单中该活动的摘录:
<activity
android:name=".ActivityInAnotherProcess"
android:process=":anotherprocess"
android:launchMode="singleTask"
...
&#34;:另一个过程&#34;开始我需要以某种方式通过adb在代码中杀死主进程。
我已经尝试过#34;终止应用程序&#34;在DDMS中,主进程被杀死,但在几秒钟后重新创建。
我已尝试过此代码:
String packageName = c.getPackageName();
ActivityManager activityManager = (ActivityManager) c.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.killBackgroundProcesses(packageName);
但主要进程被杀死只是在几秒钟后重新创建。
更新 上面发布的代码有效。我在另一个进程中启动Activity后几秒钟调用它,但似乎在我杀死主进程之前其他进程没有完全启动。现在我从其他进程中杀死了主要进程。这现在有效。谢谢大家!
答案 0 :(得分:0)
List<ApplicationInfo> packages;
PackageManager pm;
pm = getPackageManager();
packages = pm.getInstalledApplications(0);
ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
for (ApplicationInfo packageInfo : packages) {
if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue;
if(packageInfo.packageName.equals("mypackage")) continue;
mActivityManager.restartPackage(packageInfo.packageName);
}
如果API&gt; = 8,请使用mActivityManager.killBackgroundProcesses(String packageName)
如果API&lt; 8使用mActivityManager.restartPackage(packageInfo.packageName);