这种方法从悬浮按钮切换APP到前台,可是现在提示两个错误,请问有没有代替方案呢
//回到APP主界面ActivityManager activityManager = (ActivityManager) context8.getSystemService(ACTIVITY_SERVICE);
                    List<ActivityManager.RunningTaskInfo> taskInfoList = activityManager.getRunningTasks(100);
                    for (ActivityManager.RunningTaskInfo taskInfo : taskInfoList) {
                        if (taskInfo.topActivity.getPackageName().equals(context8.getPackageName())) {
                            activityManager.moveTaskToFront(taskInfo.id, 0);
                            break;
                        }
                    }提示 getRunningTasks 已经过期,,但是只是警告美什么影响
activityManager.getRunningTasks但是这个红色警告提示
taskInfo.topActivity.getPackageName().equalsField requires API level 29 (current min is 24): android.app.TaskInfo#topActivity less... (Ctrl+F1) 
Inspection info:This check scans through all the Android API calls in the application and warns about any calls that are not available on all versions targeted by this application (according to its minimum SDK attribute in the manifest).
需要API29,,,晕,那么不是很多手机都不能用啊 !现在需要替代方案,切换APP到前台,有人懂吗?  谢谢啊!

解决方案 »

  1.   

    人家切换到后台,你非要再自己切回来,这需求...
    可以使用服务唤醒.开个服务轮询监测这个应用是否在前台,不是就设置成前台
        private void wakeUp() {
            if (!isSleeping()) {
                PackageManager packageManager = this.getPackageManager();
                Intent intent = packageManager.getLaunchIntentForPackage(PackageName);
                startActivity(intent);
            }    }    private boolean isSleeping() {        if (activityManager == null) {
                activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
            }
            processList.clear();
            processList = activityManager.getRunningTasks(200);
            for (ActivityManager.RunningTaskInfo info : processList) {
                if (info.baseActivity.getPackageName().startsWith(PackageName)) {
                    return true;
                }
            }
            return false;
        }
      

  2.   

    人家切换到后台,你非要再自己切回来,这需求...
    可以使用服务唤醒.开个服务轮询监测这个应用是否在前台,不是就设置成前台
        private void wakeUp() {
            if (!isSleeping()) {
                PackageManager packageManager = this.getPackageManager();
                Intent intent = packageManager.getLaunchIntentForPackage(PackageName);
                startActivity(intent);
            }    }    private boolean isSleeping() {        if (activityManager == null) {
                activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
            }
            processList.clear();
            processList = activityManager.getRunningTasks(200);
            for (ActivityManager.RunningTaskInfo info : processList) {
                if (info.baseActivity.getPackageName().startsWith(PackageName)) {
                    return true;
                }
            }
            return false;
        }

    比如360的悬浮按钮,就可以切换到360主界面,这个需求很多啊
      

  3.   

    人家切换到后台,你非要再自己切回来,这需求...
    可以使用服务唤醒.开个服务轮询监测这个应用是否在前台,不是就设置成前台
        private void wakeUp() {
            if (!isSleeping()) {
                PackageManager packageManager = this.getPackageManager();
                Intent intent = packageManager.getLaunchIntentForPackage(PackageName);
                startActivity(intent);
            }    }    private boolean isSleeping() {        if (activityManager == null) {
                activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
            }
            processList.clear();
            processList = activityManager.getRunningTasks(200);
            for (ActivityManager.RunningTaskInfo info : processList) {
                if (info.baseActivity.getPackageName().startsWith(PackageName)) {
                    return true;
                }
            }
            return false;
        }

    前后台自由切换,很多APP都可以实现,没有人研究过吗?
      

  4.   

    startActivity 不行?