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