当前位置:编程学习 > wap >>

请教高手高手高高手!!!!!!!

平台 2.3.1,已知包名,想批量杀死后台还在运行的应用,我添加了<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"> 权限,并用killBackgroundProcesses方法,但是没有任何效果,请教改怎么解决这个问题。 --------------------编程问答-------------------- killBackgroundProcesses 目前来说是有些问题。有些package杀不死。
源码里面用的是forceStopPackage 方法来强行杀死的。但该方法是隐藏的。
网上有资源说是可以用反射调用该方法。比较复杂,且不能通用。(需要系统签名)

我试过带root权限的机器用kill -9 命令杀死进程。但是杀死后有些程序会重启,比如qq,360。
估计是有些程序在系统的保护堆栈中,只有forceStopPackage 能杀死(杀死进程的同时,清楚保护堆栈中的信息)。这个只是推测,如果有大大知道的更详细希望指出.

目前问题未能很好的解决。查看了众多代码也没发现有更好的解决方法。

如果楼主想做一个进程管理类的app,我是并不推荐的。杀死占用内存的后台程序只是用户的一厢情愿罢了 --------------------编程问答-------------------- 360桌面里的一键清理是怎么实现的,效果挺好的 --------------------编程问答--------------------
引用 2 楼 aklldoop 的回复:
360桌面里的一键清理是怎么实现的,效果挺好的
一键清理了,一会儿又重启了 --------------------编程问答-------------------- 一会重启不要紧,不考虑这方面,我看360的主配置文件里并没用android.permission.FORCE_STOP_PACKAGES这个权限,那它是怎么关闭的呢,我写死包名用killBackgroundProcesses就是关不掉,但是360可以 --------------------编程问答-------------------- 你仔细看看360查出来的进程,有时候都没有QQ的。但qq 却在状态栏里面 --------------------编程问答-------------------- 除非拥有系统权限,否则无法Kill任何一个应用的。
Markets上类似360这种软件,其实都是调用
public void restartPackage (String packageName) --------------------编程问答--------------------
引用 6 楼 yiyaaixuexi 的回复:
除非拥有系统权限,否则无法Kill任何一个应用的。
Markets上类似360这种软件,其实都是调用
public void restartPackage (String packageName)

顶一个  --------------------编程问答--------------------
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,