android 强制退出当前应用程序,android 强制退出应用

本文介绍了多种在Android中强制退出应用程序的方法,包括使用System.exit(0)、killProcess、ActivityManager等。同时,还展示了如何通过shell命令和获取运行进程的方式来强退指定应用,这些操作可能需要root权限。提供的代码示例详细解释了如何执行这些操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关闭应用的方法:

1.System.exit(0);

2.android.os.Process.killProcess(android.os.Process.myPid());

ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

3.am.killBackgroundProcesses("packagename");

4.am.restartPackage("packagename");

以上方法貌似只能退出本身应用。

强退其他应用:

利用shell 下面的的kill命令来杀掉进程从而达到退出应用的效果。kill  processid;  此命令需要root权限执行

直接上代码

1.ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

List infos = am.getRunningAppProcesses();

for(RunningAppProcessInfo info : infos){

Log.i("---",info.processName);

if("com.test.br2".equals(info.processName)){

Log.i(TAG, info.processName+"---"+info.pid);

//Process.killProcess(info.pid);

killProcess(info.pid);

break;

}

}

2. killProcess1("packageName");

private void killProcess(int processId){

java.lang.Process process = null;

try {

process = Runtime.getRuntime().exec("su");

OutputStream os = process.getOutputStream();

os.write(("kill "+processId).getBytes());

os.flush();

os.close();

Thread.sleep(3000) //这里的sleep的目的让上面的kill命令执行完成

} catch (IOException ex) {

Log.e(TAG, "" + ex.getStackTrace());

}finally{

if(process!=null){

process.destroy();

process =null;

}

}

}

private void killProcess1(String packageName) {

Log.i(TAG, "killProcess");

java.lang.Process process = null;

try {

String processId = "";

process = Runtime.getRuntime().exec("su");

OutputStream os = process.getOutputStream();

os.write("ps \n".getBytes());

os.flush();

BufferedReader br = new BufferedReader(new InputStreamReader(process

.getInputStream()));

String inline;

while ((inline = br.readLine()) != null) {

if (inline.contains(packageName)) {

Log.i(TAG, "" + inline);

StringTokenizer processInfoTokenizer = new StringTokenizer(inline);

int count = 0;

while (processInfoTokenizer.hasMoreTokens()) {

count++;

processId = processInfoTokenizer.nextToken();

if (count == 2) {

break;

}

}

Log.i(TAG, "kill process : " + processId);

os.write(("kill " + processId).getBytes());

os.flush();

if(os!=null){

os.close();

os =null;

}

br.close();

return;

}

}

} catch (IOException ex) {

Log.e(TAG, "" + ex.getStackTrace());

}finally{

if(process!=null){

process.destroy();

process =null;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值