Android 5.0以上的getRunningTasks失效,该方法可以获得在前台运行的系统进程。可以用getRunningAppProcesses方法暂时替代。

android6.0以上的getRunningAppProcesses也失效,系统关闭了三方软件对系统进程的访问,出于安全考虑。

参考资料:

  • http://blog.csdn.NET/hyhyl1990/article/details/45700447
  • http://www.cnblogs.com/luoyangcn/p/4936830.html

替代方案

  • AndroidProcesses:Get running processes on Android

  • AndroidProcess:判断App位于前台或者后台的6种方法

  • Android 5.1.1 and above - getRunningAppProcesses() returns my application package only

  • Android5.1.+ getRunningAppProcesses()获取运行中进程(第三方开源库)

可以通过以下两种方式得到topActivity的信息:

1、利用ActivityManager.getRunningAppProcesses();获得当前正在运行的所有应用程序的进程。然后根据当前进程信息里的importance和processState来确定当前在顶部的进程。不过这里得到的进程信息里只有被载入当前进程的所有包名pkgList,所以只能判断当前列表有没有你需要监控的包名。

private String[] getActivePackages(Context context) {ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);final Set<String> activePackages= new HashSet<String>();final List<ActivityManager.RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();for(ActivityManager.RunningAppProcessInfo processInfo : processInfos) {if (processInfo.importance ==ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND&& processInfo.processState == ActivityManager.START_TASK_TO_FRONT){activePackages.addAll(Arrays.asList(processInfo.pkgList));Log.d(TAG,"====processInfo.processState " + processInfo.processState + processInfo.processName);}}return activePackages.toArray(new String[activePackages.size()]);}

2、利用UsageStatsManager,并且调用他的queryUsageStats方法来获得启动的历史记录,调用这个方法需要设置权限“Apps withusage access”。但是这个queryUsageStats只能查询一段时间内的使用状态,如果时间间隔较短,并且一段时间不使用手机,获得的列表就可能为空。

static class RecentUseComparator implements Comparator<UsageStats>{@Overridepublic int compare(UsageStats lhs,UsageStats rhs) {return (lhs.getLastTimeUsed() > rhs.getLastTimeUsed()) ? -1 : (lhs.getLastTimeUsed()== rhs.getLastTimeUsed()) ? 0 : 1;}}private StringgetTopPackage(Context context) {long ts = System.currentTimeMillis();RecentUseComparator mRecentComp = new RecentUseComparator();UsageStatsManager mUsageStatsManager =(UsageStatsManager) context.getSystemService("usagestats");//查询ts-10000 到ts这段时间内的UsageStats,由于要设定时间限制,所以有可能获取不到List<UsageStats> usageStats =mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST,ts - 10000, ts);  if (usageStats == null) return "";if (usageStats.size() == 0) return "";Collections.sort(usageStats,mRecentComp);Log.d(TAG,"====usageStats.get(0).getPackageName()"+ usageStats.get(0).getPackageName());return usageStats.get(0).getPackageName();}

Android getRunningTasks和getRunningAppProcesses失效相关推荐

  1. getRunningTasks和getRunningAppProcesses失效

    Android 5.0以上的getRunningTasks失效,该方法可以获得在前台运行的系统进程.可以用getRunningAppProcesses方法暂时替代. android6.0以上的getR ...

  2. Android Retrofit @Streaming 注解失效

    Android Retrofit @Streaming 注解失效 问题特征: 即使加了@Streaming方法也不能达到逐步加载大文件数据的效果,产生的效果为下载会有长时间的卡顿,卡顿后,会在极端的时 ...

  3. Android卡片设置透明度失效问题

    最近在做蓝牙电话项目,需要支持双路通话,涉及到通话卡片透明度调节,当正在通话中,有新的来电时,原来的通话卡片需要做成30%的透明度,本来很简单的一个小改进,但通过 setAlpha()接口总是失效!  ...

  4. android跑马灯效果不起作用,Android跑马灯效果失效问题

    Android中的跑马灯效果在特定情况下用的效果很不错,调试的时候发现在2.3系统下,文字跑动正常,后来无意换了另一个手机,4.0以上的系统,发现文字跑动效果失效,研究后发现有两种情况会导致失效. 先 ...

  5. Android RelativeLayout中layout_marginBottom失效

    问题描述: 最近遇到一个诡异的问题,在自定义Dialog时,使用自己的xml布局. 发现显示异常,如图: 布局代码如下: <RelativeLayout xmlns:android=" ...

  6. Android Retrofit @Streaming 注解失效(二)

    本博文由我的关注者友情赞助,我终于有愿意和我互动的粉丝啦 = =! 感觉有挺长一段时间没有写一些东西了呢,这次就稍微写一些干货,主要是之前写了一篇Retrofit@Stream注解失效的博文,然后留了 ...

  7. android 学习过程中登陆失效的个人理解

    今天在学习的过程中,要做登陆失效的功能,所以就找了些资料,好好看了一下,研究了一番,慢慢的做出来了! 比方:你在一个手机端登陆了账号.在另外的一个手机端也登陆了账号.此时,前一个手机端的账号会提示登陆 ...

  8. android自定义静态广播失效,自定义的静态广播没有作用怎么处理

    自定义的静态广播没有作用怎么办? //在AndroidManifest.xml里注册静态广播 //定义广播接收类 public class TestBroadcast extends Broadcas ...

  9. android手机线控失效,耳机线控失效 苹果iOS 10.0.2终于修好了

    苹果刚刚发布了最新iOS 10系统的一次小幅更新,主要以修复iPhone和iPad用户的错误为主,其中最受关注的就是修复了Lightning接口EarPods耳机的连接错误. 本次更新的版本号为iOS ...

最新文章

  1. Drive.ai轰然倒下:曾估值两亿,吴恩达夫妇站台,苹果将接盘部分可用技术人才...
  2. mybatis中的xml中拼接sql中参数与字符串的方法
  3. 【SSM】第一个SpringMVC入门示例
  4. 八十三、React简书项目:Styled-Components 与 Reset.css 的结合使用,完成Header布局
  5. 计算机系统和中断的概念
  6. makefile / CMake
  7. 微软认证学习资料大集合(软件+资料)
  8. 函数的重载、覆盖和隐藏
  9. ubuntu sudo apt-get update 失败 解决方法
  10. python token_Python实现JWT(JSON Web Token)认证
  11. Sun JVM 内存管理、参数与调优、内存分配与回收策略、GC 日志配置使用详解
  12. UReport2导出报错
  13. arcgis for android 调用公网天地图注记重影问题
  14. 女性意识觉醒,内衣是为了舒适还是性感?
  15. 针对全局的接口出入参加解密-AES/ECB/PKCS5Padding
  16. pb一步步开发APP
  17. win10计算机丢失msvcr,Win10系统msvcp140.dll丢失怎样修复?
  18. 智能化变电站辅助系统与生产系统结合的未来发展方向
  19. 倍福Wince系统存储容量StorageMemory和ProgramMemory设置
  20. Linux资源监控命令/工具(综合)

热门文章

  1. 蓝桥杯 ALGO-46 算法训练 Hanoi问题
  2. PAT 1088 三人行(20 分)- 乙级
  3. L1-043 阅览室-PAT团体程序设计天梯赛GPLT
  4. pythonwindow程序窗体操作_python操作Windows窗口程序
  5. oracle 存储过程给另一个用户的权限问题
  6. 【剑指offer】5.二叉树的镜像和打印
  7. dhcp网络服务的搭建和配置
  8. java中解决request中文乱码问题
  9. Javascript定义类(class)的三种方法
  10. JFreechart 在linux下不显示及中文乱码问题