转自:http://www.cnblogs.com/sunjialiang/articles/2132410.html
第一种方法:
主要适合api Level<=7
ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
am.restartPackage("com.android.music");
并且需要在Manifest里面注册权限
1 <!-- API Level7及以下使用的 -->
2 <uses-permission android:name="android.permission.RESTART_PACKAGES"/>
第二种方法:
主要适合API Level>=8使用
1 ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);2 am.killBackgroundProcesses("com.android.mms");
在Manifest注册权限
1 <!-- api Level 8以上使用的 -->
2 <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
第三种方法:
利用Java的反射机制:
ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
try {
Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, "com.android.mms");//com.android.mms是要结束进程的包名
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
本文详细介绍了在不同API级别下管理Android应用后台进程的方法,包括重启指定包名的应用、杀死背景进程和利用Java反射机制强制停止特定进程,并强调了在Manifest中注册相应权限的重要性。

9235

被折叠的 条评论
为什么被折叠?



