getRunningAppProcesses在Android M上返回空列表(5.1.1)
我刚刚测试了我的应用程序和CM、ATM Android Assistant等。它们都无法获得正在运行的进程列表,但在操作系统之前的版本上运行良好。那么安卓M(5.1.1)到底是怎么回事?请帮忙getRunningAppProcesses在Android M上返回空列表(5.1.1),android,process,Android,Process,我刚刚测试了我的应用程序和CM、ATM Android Assistant等。它们都无法获得正在运行的进程列表,但在操作系统之前的版本上运行良好。那么安卓M(5.1.1)到底是怎么回事?请帮忙 am = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> list = am.getRunningAppProcesses(); Log
am = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> list = am.getRunningAppProcesses();
Log.i(TAG, "LQ::examine list.size()=" + list.size());
am=(ActivityManager)getContext().getSystemService(Context.ACTIVITY_服务);
List List=am.getRunningAppProcesses();
Log.i(标记,“LQ::检查list.size()=”+list.size());
我决定改用getRunningServices
Du Speed Booster&Power Clean改用getRunningServices,也许getRunningAppProcesses在将来会被弃用 谢谢谷歌,谢谢字母表
Hashtable<String, List<ActivityManager.RunningServiceInfo>> hashtable = new Hashtable<String, List<ActivityManager.RunningServiceInfo>>();
ActivityManager am = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo rsi : am.getRunningServices(Integer.MAX_VALUE)) {
if (isCanceled()) {
return;
}
String pkgName = rsi.service.getPackageName();
if (hashtable.get(pkgName) == null) {
List<ActivityManager.RunningServiceInfo> list = new ArrayList<ActivityManager.RunningServiceInfo>();
list.add(rsi);
hashtable.put(pkgName, list);
} else {
hashtable.get(pkgName).add(rsi);
}
}
int i = 0;
int size = hashtable.size();
for (Iterator it = hashtable.keySet().iterator(); it.hasNext(); i++) {
String key = (String) it.next();
List<ActivityManager.RunningServiceInfo> value = hashtable.get(key);
ProcessItem item = new ProcessItem(getContext(), value.get(0).pid, key, totalCpu, totalRam);
if (!whiteList.contains(item.pkgName)) {
if (!killList.contains(item.pkgName)) {
killList.add(item.pkgName);
ramTotal += item.ram;
if (getListener() != null) {
Progress progress = new Progress(this);
progress.setArg1(i);
progress.setArg2(size);
progress.setMsg(item.appName);
progress.setObj(item);
getListener().onExamining(progress);
}
}
}
}
hashtable.clear();
hashtable = null;
Hashtable Hashtable=新的Hashtable();
ActivityManager am=(ActivityManager)getContext().getSystemService(Context.ACTIVITY_服务);
for(ActivityManager.RunningServiceInfo rsi:am.getRunningServices(Integer.MAX_值)){
如果(isCanceled()){
返回;
}
字符串pkgName=rsi.service.getPackageName();
if(hashtable.get(pkgName)==null){
列表=新的ArrayList();
增加(rsi);
hashtable.put(pkgName,list);
}否则{
get(pkgName).add(rsi);
}
}
int i=0;
int size=hashtable.size();
for(Iterator it=hashtable.keySet().Iterator();it.hasNext();i++){
String key=(String)it.next();
列表值=hashtable.get(键);
ProcessItem=newProcessItem(getContext(),value.get(0).pid,key,totalCpu,totalRam);
如果(!whiteList.contains(item.pkgName)){
如果(!killList.contains(item.pkgName)){
killList.add(item.pkgName);
ramTotal+=item.ram;
如果(getListener()!=null){
进度=新的进度(本);
进度表1(i);
进度。设置arg2(大小);
progress.setMsg(item.appName);
进度。setObj(项目);
getListener().OneXaming(进度);
}
}
}
}
hashtable.clear();
hashtable=null;
另一个选项是使用UsageStatsManager
UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService(Context.USAGE_STATS_SERVICE);
long endTime = System.currentTimeMillis();
long beginTime = endTime - 1000*60;
// We get usage stats for the last minute
List<UsageStats > stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, beginTime, endTime);
// Sort the stats by the last time used
if(stats != null)
{
SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>();
for (UsageStats usageStats : stats)
{
mySortedMap.put(usageStats.getLastTimeUsed(),usageStats);
}
if(mySortedMap != null && !mySortedMap.isEmpty())
{
topActivity = mySortedMap.get(mySortedMap.lastKey()).getPackageName();
}
}
我可以在android 6.0上使用
getRunningServices(
)方法获取前台应用程序列表。谢谢@thecr0w
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List appProcessInfoList = mActivityManager.getRunningServices(Integer.MAX_VALUE);
“那么安卓5.1.1棒棒糖是怎么回事?”安卓5.1.1棒棒糖又是怎么回事?结果如何?我无法在5.1.1上获取正在运行的任务列表。但是在操作系统之前的版本上可以正常工作。那么
getrunningappprocesss
或getRunningTasks
?你能决定什么不起作用吗?GetRunningAppProcesss注意:此方法仅用于调试,你是否将其用于其他目的?getRunningServices将如何返回所有正在运行的应用程序进程?如果我没弄错的话,它只会跑回来services@Lester,我们像ATK一样是一个流程杀手应用程序,所以我们需要运行流程或服务之类的东西。
ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List appProcessInfoList = mActivityManager.getRunningServices(Integer.MAX_VALUE);