【问题标题】:How to close all active applications from my Android app?如何从我的 Android 应用程序中关闭所有活动的应用程序?
【发布时间】:2011-08-09 12:58:36
【问题描述】:

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

【问题讨论】:

    标签: android


    【解决方案1】:

    你可以这样做,但不建议这样做:

        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);
       }
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      int p = android.os.Process.myPid();
      android.os.Process.killProcess(p);
      

      【讨论】:

      • ,我也在做同样的事情,如果你有工作代码然后分享..因为你说什么都行不通。
      • @user2204790 见以上答案已更新
      • 应用程序因未从概览按钮最近屏幕中移除而关闭。另外,这适用于其他应用吗?
      【解决方案3】:

      为了避免杀死系统应用你可以这样做,我包含了像华为这样的特定品牌的代码有自己的应用程序(通常包含华为) 和三星有自己的,所以这段代码避免杀死系统应用程序并将关闭所有其他应用程序。系统应用程序通常包含 androidadil 是我不想杀死的包

          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();
      
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        • 2016-03-29
        相关资源
        最近更新 更多