Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android 5.0 getRunningTasks已弃用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经完成了这个 questionquestion.但是在这library的帮助下,我现在可以使用以下代码获取前台任务列表.

if (Build.VERSION.SDK_INT < Build.VERSION_CODEs.LOLLIPOp) { //For versions less than lollipop
            Activitymanager am = ((Activitymanager) getSystemservice(ACTIVITY_serviCE));
            List<Activitymanager.RunningTaskInfo> taskInfo = am.getRunningTasks(5);
            top = taskInfo.get(0).topActivity.getPackagename();
            Log.v(tag,"top app = " + top);
        }else{ //For versions Lollipop and above
            List<AndroidAppProcess> processes = Processmanager.getRunningForegroundApps(getApplicationContext());
            Collections.sort(processes,new Processmanager.ProcessComparator());
            for (AndroidAppProcess process : processes) {
                if (process.foreground) {
                    top =process.name;
                    Log.v(tag,top);
                }
            }
        }

在这里,对于Android 5.0,我得到所有正在运行的前台进程,但我无法断定哪个应用程序是顶级应用程序.

上述代码输出(for else condition)

com.android.vending
com.google.android.gms
com.google.android.googlequicksearchBox
com.google.android.videos
com.test1
com.naag.tesTing
com.example.android.gettask

这里我的热门应用是com.google.android.videos

现在如何以编程方式决定com.google.android.videos是上面列表中的顶级应用程序?

applocker(或类似于applocker)应用程序如何在5.0上运行?
希望有人帮助对某人有所帮助.

解决方法

所以这是一个更新.在5.0和5.1.1设备中测试.工作完美.

if (Build.VERSION.SDK_INT < Build.VERSION_CODEs.LOLLIPOp) { //For versions less than lollipop
            Activitymanager am = ((Activitymanager) getSystemservice(ACTIVITY_serviCE));
            List<Activitymanager.RunningTaskInfo> taskInfo = am.getRunningTasks(5);
            top = taskInfo.get(0).topActivity.getPackagename();
            Log.v(tag,new Processmanager.ProcessComparator());
            for (int i = 0; i <=processes.size()-1 ; i++) {
                if(processes.get(i).name.equalsIgnoreCase("com.google.android.gms")) { //always the package name above/below this package is the top app
                    if ((i+1)<=processes.size()-1) { //If processes.get(i+1) available,then that app is the top app
                        top = processes.get(i + 1).name;
                    } else if (i!=0) { //If the last package name is "com.google.android.gms" then the package name above this is the top app
                        top = processes.get(i - 1).name;
                    } else{
                        if (i == processes.size()-1) { //If only one package name available
                            top = processes.get(i).name;
                        }
                    }
                    Log.v(tag,"top app = " + top);
                }
            }
        }

多亏了这个library

现在我可以在Android 5.0中获得前台任务了

大佬总结

以上是大佬教程为你收集整理的Android 5.0 getRunningTasks已弃用全部内容,希望文章能够帮你解决Android 5.0 getRunningTasks已弃用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。