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.getSystemServi