我有一个Android应用,我想从我的应用关闭所有其他活动应用。 有没有办法在Android中做到这一点?
答案 0 :(得分:3)
您可以这样做,但不建议:
List<ApplicationInfo> packages;
PackageManager pm;
pm = getPackageManager();
//get a list of installed apps.
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.killBackgroundProcesses(packageInfo.packageName);
}
答案 1 :(得分:0)
你可以这样做:
int p = android.os.Process.myPid();
android.os.Process.killProcess(p);
答案 2 :(得分:0)
避免杀死系统应用 你可以这样做,我包括像华为这样的特殊品牌的代码有自己的应用程序(通常包含华为)和三星拥有所以这个代码避免杀死系统应用程序,并将关闭所有其他应用程序。系统应用程序通常包含 android 和 adil 是我的包我不想杀
ActivityManager actvityManager = (ActivityManager)
getApplicationContext().getSystemService( getApplicationContext().ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
for(int pnum = 0; pnum < procInfos.size(); pnum++)
{
if((procInfos.get(pnum)).processName.contains("android")||(procInfos.get(pnum)).processName.contains("system")||(procInfos.get(pnum)).processName.contains("huawei")||(procInfos.get(pnum)).processName.contains("adil"))
{
//Toast.makeText(getApplicationContext(), "system apps", Toast.LENGTH_SHORT).show();
}
else
{
actvityManager.killBackgroundProcesses(procInfos.get(pnum).processName);
Toast.makeText(getApplicationContext(), "killed "+procInfos.get(pnum).processName, Toast.LENGTH_SHORT).show();
}
}