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

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

关闭应用的方法:

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;

}

}

}

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值