#1. 利用反射调用forceStopPackage来结束进程
1.1 代码如下:
ActivityManager am = (ActivityManager) getSystemService(DemoActivity.this.ACTIVITY_SERVICE);
Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, 你指定的包名);
1.2 需要在manifest里加上shareduid定义
android:sharedUserId="android.uid.system"
1.3此外还要在manifest加上下面的权限:
<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission>
2. 利用在程序中调用adb shell am force-stop <你指定的包名>来结束指定的应用程序
2.1 需要在manifest里加上shareduid定义
android:sharedUserId="android.uid.system"
##2.2 调用代码如下:
/**************************************************************************
* @说明: 执行adb shell 命令的函数
* @参数: 无
* @返回: 无
* @异常: 抛出RemoteException
* @作者:
* @时间: 2015- 12-12
*************************************************************************/
private void doExec(String cmd) {
List<String> cmds = new ArrayList<String>();
cmds.add( "sh");
cmds.add( "-c");
cmds.add(cmd);
ProcessBuilder pb = new ProcessBuilder(cmds);
try {
Process p = pb.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
doExec("am force-stop 你的包名");
3. 使用kill -9 +pid(指定的应用的包名)
3.1 找到指定包名的pid用如下命令:
adb shell
ps | grep <你指定的包名>
3.2 接着执行如下命令:
kill -9 pid<上一步找到的指定包名的pid>
4. 如果结束自己写的程序的进程也可以使用如下方法:
4.1 在程序中直接调用如下方法:
1.finish();
2. 重写 onBackPressed();监听物理按钮back
3. 重写onKeyDown;监听物理按钮back
2149

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



