如何从我的Android应用程序关闭所有活动的应用程序?

时间:2011-08-09 12:58:37

标签: android

我有一个Android应用,我想从我的应用关闭所有其他活动应用。 有没有办法在Android中做到这一点?

3 个答案:

答案 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();

    }
}