2011-08-09 23 views

回答

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

你可以这样做:

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

,我的工作在同一个,如果你有工作代码,然后分享。因为你所说的不管用。 – Custadian

+0

@ user2204790查看上面的答案已更新 –

0

避免查杀系统应用你可以做这个,我包括像华为的particlur品牌代码有自己的应用程序(其中经常包含华为)和三星有自己的,所以这个代码避免杀死sy干Apps,并会关闭所有其他应用程式apps.System往往含有的Android阿迪尔是我的包里面我不想杀

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

    } 
} 
相关问题