http://blog.csdn.net/dliyuedong/article/details/24448899
关于静默安装 http://blog.csdn.net/jiangwei0910410003/article/details/36427963
这几天一直在做一个Andorid应用,想实现任务管理器的效果,能够彻底关闭其他的程序,网上也看了很多资料,很多都是使用后restartPackage或者killBackgroundProcesses函数去进行,但是这一种并不能真正的将应用关闭.我的手机是root过的defy,尝试着使用其他的方法操作.
① kill -9 pid
这个命令对于使用linux的都非常的熟悉,强制杀掉一个进程.获取要杀掉进程的pid,然后直接执行上述命令,但是测试后发现后,在手机中setting-app中,该应用依旧是运行状态,force close依旧可以点击,并没有达到效果.
②使用android自带命令(am force-stop)
这个是查看adb帮助的时候发现的,原来adb的操作是相当的丰富的,不仅可以启动应用,发送广播,查看日志,还能对应用进行操作,比如强制关闭,十分的强大.根据这个,成功实现关闭其他应用的操作. (adb介绍官方文档)
[java][/java] view plaincopy
-
package cn.androiddevelop.flushapk.util;
-
-
import java.io.IOException;
-
import java.io.OutputStream;
-
-
/**
-
* 执行android命令
-
*
-
* @author Yuedong Li
-
*
-
*/
-
public class SuUtil {
-
-
private static Process process;
-
-
/**
-
* 结束进程,执行操作调用即可
-
*/
-
public static void kill(String packageName) {
-
initProcess();
-
killProcess(packageName);
-
close();
-
}
-
-
/**
-
* 初始化进程
-
*/
-
private static void initProcess() {
-
if (process == null)
-
try {
-
process = Runtime.getRuntime().exec("su");
-
} catch (IOException e) {
-
e.printStackTrace();
-
}
-
}
-
-
/**
-
* 结束进程
-
*/
-
private static void killProcess(String packageName) {
-
OutputStream out = process.getOutputStream();
-
String cmd = "am force-stop " + packageName + " \n";
-
try {
-
out.write(cmd.getBytes());
-
out.flush();
-
} catch (IOException e) {
-
e.printStackTrace();
-
}
-
}
-
-
/**
-
* 关闭输出流
-
*/
-
private static void close() {
-
if (process != null)
-
try {
-
process.getOutputStream().close();
-
process = null;
-
} catch (IOException e) {
-
e.printStackTrace();
-
}
-
}
-
}
转载请注明出处.