AndroidServer.exe这个进程如何结束,阻止其自动启动?

AndroidServer.exe这个进程如何结束,阻止其自动启动?,第1张

开始运行“此败CMD”确液弊定,然后输入以下命令:reg

add

"HKLM\森埋颤SOFTWARE\Microsoft\Windows

NT\CurrentVersion\Image

File

Execution

Options\AndroidServer.exe"

/v

debugger

/t

reg_sz

/d

debugfile.exe

/f

执行完了,结束AndroidServer.exe,是不是不启用了。。。

使用ActivityManager的killBackgroundProcesses(packageName)方法可以强制性的关闭packageName关联的执行。这个方法的特点是不可答和蠢以自杀,只能杀死其他进程。关键代码:

public void onClick(View v) {

String packageName = textPackageName.getText().toString()//获得包名

ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE)//获清陪得获得管理器

am.killBackgroundProcesses(packageName)//棚册通过包名杀死关联进程

}

Android下结束进程的方法

一、结束一个活动Activity

要主动的结束一个活动Activity,使用finish方法,而且这个方法最后会调用Activity的生命周期函数onDestroy方法,结束当前的Activity,从任务栈中d出当前的Activity,激活下一个Activity。当然其他的finish系列方法,我们不在这里做详细讨论,有兴趣的同学可以自己查阅一下SDK 的文档。

二、强制结束当前的进程

强行结束当前进程有两个粗贺基方法。

1、killProcess(int pid)              例子:android.os.Process.killProcess(android.os.Process.myPid())

这个方法使用是有条件的:

a、将被杀掉的进程 和 当前进程 处于同一个包或者应用程序中;

b、将被杀掉的进程 是由当前应用程序所创建的附加进程;

c、将被杀掉的进程 和 当前进程 共享了普通用户的UID。(这里的普通用户,是相对于Root权限的用户来说的)

2、System.exit(int code)             例子:System.exit(0)

该方法只能用于结束当前进程自身拍兄,在程序遇到异常,无法正常执行时,可以通过这个方法强制退出。

需要注意的是,这两个方法,会导致进程非正常退出,就是说,进程退出时不会去执行onPause、onStop和onDestroy方法,那么进程很有可能错过了保存数据的机会。因此,这两个方法最好使用在出现异常的时候!

三、结束另一个进程

要通过一个进程去结束另一个进程。在之前的SDK版本中,一直使用方法restartPackage(packageName)方法,但是在Android的开发文档中介绍说,这个函数会导致一些问题( the previous behavior here is no longer available to applications because it allows them to break other applications by removing their alarms, stopping their services, etc.),所以建议大家使用一个新的方法: 

void killBackgroundProcesses(String packageName)

由于这个方法没有返回值,所以我们也不知道我们的目标进程是否真的退出了。但是,我目前只发现了这个岩谨可以结束另一个进程的方法。

四、退出到主屏幕

这个方法,也是退出当前进程的一个方法。如果我们在进程中创建了很多的Activity,但是又不想关闭时去退出不在任务栈顶的Activity,那么就可以直接使用这个方法了。  

  下面看看代码实现:

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()

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8266875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存