Android 5.0+ getRunningTasks is deprecated

前端 未结 2 1111
梦谈多话
梦谈多话 2020-12-21 02:18

I have gone through this question and this question. But with the help of this library i can now get the list of foreground tasks using following code.

if (B         


        
相关标签:
2条回答
  • 2020-12-21 02:47

    The "apps with usage accesse" feature sometimes can meet your needs

    0 讨论(0)
  • 2020-12-21 03:00

    So here is an update. Tested in 5.0 and 5.1.1 device. Working perfectly.

    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 (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);
                    }
                }
            }
    

    Thanks to this library

    Now i'm able to get foreground task in Android 5.0+

    0 讨论(0)
自定义标题
段落格式
字体
字号
代码语言
提交回复
热议问题