- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试编写一个简单的任务 killer 。我知道我不应该在 Android 中终止任务,但我很想尝试这样的事情。我有以下代码:
List<RunningAppProcessInfo> procInfo = activityManager.getRunningAppProcesses();
for (int i = 0; i < procInfo.size(); i++) {
Log.v("proces " + i,procInfo.get(i).processName + " pid:" + procInfo.get(i).pid + " importance: " + procInfo.get(i).importance + " reason: " + procInfo.get(i).importanceReasonCode);
//First I display all processes into the log
}
for (int i = 0; i < procInfo.size(); i++) {
RunningAppProcessInfo process = procInfo.get(i);
int importance = process.importance;
int pid = process.pid;
String name = process.processName;
if (name.equals("manager.main")) {
//I dont want to kill this application
continue;
}
if (importance == RunningAppProcessInfo.IMPORTANCE_SERVICE) {
//From what I have read about importances at android developers, I asume that I can safely kill everithing except for services, am I right?
Log.v("manager","task " + name + " pid: " + pid + " has importance: " + importance + " WILL NOT KILL");
continue;
}
Log.v("manager","task " + name + " pid: " + pid + " has importance: " + importance + " WILL KILL");
android.os.Process.killProcess(procInfo.get(i).pid);
}
procInfo = activityManager.getRunningAppProcesses();
//I get a new list with running tasks
for (int i = 0; i < procInfo.size(); i++) {
Log.v("proces after killings" + i,procInfo.get(i).processName + " pid:" + procInfo.get(i).pid + " importance: " + procInfo.get(i).importance + " reason: " + procInfo.get(i).importanceReasonCode);
}
我这里的问题是,当我执行这段代码时,我首先得到所有任务的列表,没关系。比我在日志中看到的几行:
Sending signal. pid: (processId) SIG: 9
我认为那是死亡的信号。但是在我的代码末尾,当我显示所有正在运行的进程时,列表和以前一样,没有任务被杀死。知道为什么吗?谢谢!
最佳答案
您不能以这种方式终止其他任务,因为内核会强制执行权限。试试这个:
ActivityManager activityManager = (ActivityManager) context.getSystemService("activity");
activityManager.restartPackage(packageName);
您需要 list 中的以下权限:
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
编辑:
实际上 restartPackage 已被弃用。请改用 killBackgroundProcesses()!
关于安卓任务 killer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10471239/
我正在尝试编写一个简单的任务 killer 。我知道我不应该在 Android 中终止任务,但我很想尝试这样的事情。我有以下代码: List procInfo = activityManager.ge
也许你可以帮忙。 是否有可能获取所有在 Android 系统中运行的 Processes 的列表,并杀死其中的一些?我知道有一些应用程序(task manager),但我想编写自己的简单应用程序。 我
(系统=编程语言,框架等) PHP具有一些严重的好处,其他编程语言及其框架却忽略了这些好处。 其中之一是易于部署。只将文件放入与URL相匹配的目录中感觉很脏。但这是非常简单和直接的。无论您如何看待语言
我们让这位客户提示说,产品在正常运行 2-5 分钟后不断崩溃。经过几天的猜测,我们得出了以下结论: 当进程终止而不留下任何痕迹(事件日志/崩溃转储)时,有两个选项: 1.我们自己的进程在调用 Term
我正在 Genymotion 模拟器中调试应用程序,当应用程序开始出现异常时,我已经厌倦了终止应用程序。梦想是有一些预先配置的一键式(一键式)应用程序 killer 来终止(或卸载)一个特定的应用程序
我在绘制太大的图像时遇到问题,它会杀死我的应用程序。 出现以下错误: java.lang.RuntimeException: Canvas: trying to draw too large (num
我想知道如果C#是性能杀手,为什么C#会提供lambda表达式? 尝试运行以下命令: Stopwatch sw = new Stopwatch(); sw.Start(); x = x.Selec
我有一个作为 Windows 服务运行的 python 程序,在我看来它确实捕获了所有异常。在我的开发环境中,当程序崩溃时,我无法重现任何没有记录异常的情况。除了 2 种情况:程序被任务管理器杀死或者
你们中的一些人可能偶然发现了这篇可爱的文章 - http://igoro.com/archive/quicksort-killer/\ 真正有趣的是他如何修复快速排序以在 O(N log N) 内针对
几周前,我的一个 friend 向我展示了一个网站,其中解释和描述了最流行网站的架构(youtube、amazon、facebook),它还显示了一些关于它们的有趣统计数据。 有谁知道我在哪里可以找到
摧毁僵尸网络的最佳方法不是来自编写自己的病毒吗? 防病毒软件从不冒犯。它只是等待那些有足够时间窃取/下载/安装 X 软件、测试其防御并向其无人机/僵尸部署新更新以利用 X 软件弱点的人的攻击。因此,立
我已经阅读了很多关于这个主题的内容,但我仍然感到困惑。似乎普遍的答案是否定的。但是我发现了一个似乎可以“欺骗”任务 killer 的应用程序。是GO接触EX。即使它正在运行(可以在设置->管理应用程序
我有一个基于 docker 镜像 tomcat-9.0.13-jre11 的 docker 容器内正在运行的 Web 应用程序。容器收到来自 linux 系统的 kill 消息。 我找到的唯一信息来自
我们正在使用 X-Frame-Options header 和可能本页描述的 JS/CSS 设置实现点击劫持保护: https://www.owasp.org/index.php/Clickjacki
我目前正在学习 C,并达到了(哈哈...)学习指针的地步。我想我已经对它们有所了解,并且我想我了解了它们的概念。 如果我有一个名为“c”的指针和一个名为“a”且值为 5 的整数,我将执行以下操作: *
$ mlockall schedtool -R -p 4 -e ionice -c1 mplayer -really-quiet whatever.ogg $ mempig Killed Mplaye
我的邮件从这条规则中得到 1.6 分(最多 2 分被分类为垃圾邮件): SpamAssassin 规则:HTML_IMAGE_ONLY_24 标准描述:HTML:包含2000-2400字节文字的图像
看完this question关于 Windows 内存分配器看似退化的行为,并回想起 this paper关于构建快速排序实现的最坏情况输入,我开始想:是否有可能构建一个程序,给定一个黑盒内存分配器
我正在使用 Busybox 测试和嵌入 linux CPE; BusyBox v1.00 (2012.07.10-03:48+0000) multi-call binary 我想尝试使用盒子上所有可用
从大约一年(也许更多)开始,我不断有进程被 linux oom-killer 杀死。运行的机器是我的 htpc 使用 ubuntu gnome 15.04(当前)。 每天一次或有时连续 10 次被杀死
我是一名优秀的程序员,十分优秀!