根据包名关闭其他应用或者进程

xiaoxiao2025-05-26  33

/** * 根据包名关闭一个后台应用,正处于前台的应用关不了,带通知栏的服务也属于前台进程,关闭不了 * 需要权限KILL_BACKGROUND_PROCESSES * @param context * @param packageName */ public static void killApps(Context context,String packageName) { try { ActivityManager manager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); manager.killBackgroundProcesses(packageName); System.out.println("TimerV kill background: "+packageName+" successful"); }catch(Exception ex) { ex.printStackTrace(); System.err.println("TimerV kill background: "+packageName+" error!"); } } /** * 根据包名关闭应用,已被弃用,听说源码中依然调用killBackgroundProcesses * 需要权限 RESTART_PACKAGES * @param context * @param packageName */ public static void restartApps(Context context,String packageName) { try { ActivityManager manager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); manager.restartPackage(packageName); System.out.println("TimerV restart package "+packageName+" successful"); }catch(Exception ex) { ex.printStackTrace(); System.err.println("TimerV restart package "+packageName+" error!"); } } /** * 根据包名启动应用 * @param context * @param packageName */ public static void startApps(Context context,String packageName) { try { PackageManager packageManager = context.getPackageManager(); Intent intent=new Intent(); intent =packageManager.getLaunchIntentForPackage(packageName); if(intent==null){ System.err.println("TimerV package: "+packageName+" uninstalled!"); }else{ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } }catch(Exception ex) { ex.printStackTrace(); System.err.println("TimerV start package: "+packageName+" error!"); } } /** * 根据包名和服务名启动一个服务 * @param context * @param packageName * @param service */ public static void startService(Context context,String packageName,String service) { try { Intent intent=new Intent(); ComponentName cn = new ComponentName(packageName,service); intent.setComponent(cn); context.startService(intent); }catch(Exception ex) { ex.printStackTrace(); System.err.println("TimerV start service: "+service+" error!"); } } /** * 根据包名强制关闭一个应用,不管前台应用还是后台进程,需要share systemuid * 需要权限 FORCE_STOP_PACKAGES * @param context * @param packageName */ public static void stopApps(Context context,String packageName) { try { ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class); forceStopPackage.setAccessible(true); forceStopPackage.invoke(am, packageName); System.out.println("TimerV force stop package "+packageName+" successful"); }catch(Exception ex) { ex.printStackTrace(); System.err.println("TimerV force stop package "+packageName+" error!"); } }

示例代码请参考 https://download.csdn.net/download/peachs885090/10743169 https://pan.baidu.com/s/14IdYIs5APGFAXlklwVJgng 提取码:vfht

转载请注明原文地址: https://www.6miu.com/read-5030768.html

最新回复(0)