Appium Android kill 进程的方法

kratos0517 · 2013年12月10日 · 4018 次阅读

一、结束一个活动 Activity

要主动的结束一个活动 Activity,(先强调一下,是结束一个活动,而不是进程)是 finish 方法

二、强制结束当前的进程
强行结束当前进程有两个方法
1、killProcess(int pid)
Kill the process with the given PID. Note that, though this API allows us to request to kill any process based on its PID, the kernel will still impose standard restrictions on which PIDs you are actually able to kill. Typically this means only the process running the caller's packages/application and any additional processes created by that app; packages sharing a common UID will also be able to kill each other's processes.
google 翻译:
杀死进程,给定的 PID。请注意,虽然这个 API 允许我们要求任何进程,根据 PID,内核仍然会征收标准的 PID 的限制,你实际上能够杀死。通常,这意味着只有呼叫者的包/应用程 序,该应用程序所创建的任何额外的流程运行的进程,共享一个共同的 UID 的包也将能够杀死对方的过程。
2、System.exit(int code)

该方法只能用于结束当前进程自身

三、结束另一个进程
void killBackgroundProcesses(String packageName)

四、退出到主屏幕 (记得是对当前进程的处理)
当按下返回键时,就返回到主屏幕,并带有参数 FLAG_ACTIVITY_CLEAR_TOP ,会清理掉当前的活动。

1、android.os.Process.killProcess
Process.killProcess 最终是调用 linux API kill() 发送 SIGKILL 信号。了解 Linux 编程的都知道,进行收到这个信息都会立即结束进程,Android 下不同的是 ActivityManager 一直监听者进程状态。如果发现进程被 kill,会立即重启进行,并重启之前状态对应的 Activity、Service、ContentProvider 等。这就是为什么我们调用 Process.killProcess 后,发现程序是重启了,而不是被 kill 了。
2、killBackgroundProcesses (杀后台进程)
view plain
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

manager.killBackgroundProcesses(getPackageName());

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册