Android getRunningTasks和getRunningAppProcesses失效
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失效相关推荐
- getRunningTasks和getRunningAppProcesses失效
Android 5.0以上的getRunningTasks失效,该方法可以获得在前台运行的系统进程.可以用getRunningAppProcesses方法暂时替代. android6.0以上的getR ...
- Android Retrofit @Streaming 注解失效
Android Retrofit @Streaming 注解失效 问题特征: 即使加了@Streaming方法也不能达到逐步加载大文件数据的效果,产生的效果为下载会有长时间的卡顿,卡顿后,会在极端的时 ...
- Android卡片设置透明度失效问题
最近在做蓝牙电话项目,需要支持双路通话,涉及到通话卡片透明度调节,当正在通话中,有新的来电时,原来的通话卡片需要做成30%的透明度,本来很简单的一个小改进,但通过 setAlpha()接口总是失效! ...
- android跑马灯效果不起作用,Android跑马灯效果失效问题
Android中的跑马灯效果在特定情况下用的效果很不错,调试的时候发现在2.3系统下,文字跑动正常,后来无意换了另一个手机,4.0以上的系统,发现文字跑动效果失效,研究后发现有两种情况会导致失效. 先 ...
- Android RelativeLayout中layout_marginBottom失效
问题描述: 最近遇到一个诡异的问题,在自定义Dialog时,使用自己的xml布局. 发现显示异常,如图: 布局代码如下: <RelativeLayout xmlns:android=" ...
- Android Retrofit @Streaming 注解失效(二)
本博文由我的关注者友情赞助,我终于有愿意和我互动的粉丝啦 = =! 感觉有挺长一段时间没有写一些东西了呢,这次就稍微写一些干货,主要是之前写了一篇Retrofit@Stream注解失效的博文,然后留了 ...
- android 学习过程中登陆失效的个人理解
今天在学习的过程中,要做登陆失效的功能,所以就找了些资料,好好看了一下,研究了一番,慢慢的做出来了! 比方:你在一个手机端登陆了账号.在另外的一个手机端也登陆了账号.此时,前一个手机端的账号会提示登陆 ...
- android自定义静态广播失效,自定义的静态广播没有作用怎么处理
自定义的静态广播没有作用怎么办? //在AndroidManifest.xml里注册静态广播 //定义广播接收类 public class TestBroadcast extends Broadcas ...
- android手机线控失效,耳机线控失效 苹果iOS 10.0.2终于修好了
苹果刚刚发布了最新iOS 10系统的一次小幅更新,主要以修复iPhone和iPad用户的错误为主,其中最受关注的就是修复了Lightning接口EarPods耳机的连接错误. 本次更新的版本号为iOS ...
最新文章
- Drive.ai轰然倒下:曾估值两亿,吴恩达夫妇站台,苹果将接盘部分可用技术人才...
- mybatis中的xml中拼接sql中参数与字符串的方法
- 【SSM】第一个SpringMVC入门示例
- 八十三、React简书项目:Styled-Components 与 Reset.css 的结合使用,完成Header布局
- 计算机系统和中断的概念
- makefile / CMake
- 微软认证学习资料大集合(软件+资料)
- 函数的重载、覆盖和隐藏
- ubuntu sudo apt-get update 失败 解决方法
- python token_Python实现JWT(JSON Web Token)认证
- Sun JVM 内存管理、参数与调优、内存分配与回收策略、GC 日志配置使用详解
- UReport2导出报错
- arcgis for android 调用公网天地图注记重影问题
- 女性意识觉醒,内衣是为了舒适还是性感?
- 针对全局的接口出入参加解密-AES/ECB/PKCS5Padding
- pb一步步开发APP
- win10计算机丢失msvcr,Win10系统msvcp140.dll丢失怎样修复?
- 智能化变电站辅助系统与生产系统结合的未来发展方向
- 倍福Wince系统存储容量StorageMemory和ProgramMemory设置
- Linux资源监控命令/工具(综合)