切换APP到前台,出现错误提示

初学额 2019-08-24 05:51:37
这种方法从悬浮按钮切换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().equals

Field 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到前台,有人懂吗? 谢谢啊!
...全文
209 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yunc2 2019-09-02
  • 打赏
  • 举报
回复
startActivity 不行?
初学额 2019-08-31
  • 打赏
  • 举报
回复
有朋友懂到吗? 有资料看看也好啊,论坛也搜搜不到
亲爱的Joe 2019-08-26
  • 打赏
  • 举报
回复
引用 楼主 初学额 的回复:
这种方法从悬浮按钮切换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().equals Field 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到前台,有人懂吗? 谢谢啊!
人家切换到后台,你非要再自己切回来,这需求... 可以使用服务唤醒.开个服务轮询监测这个应用是否在前台,不是就设置成前台

    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;
    }
初学额 2019-08-26
  • 打赏
  • 举报
回复
引用 1 楼 亲爱的Joe的回复:
[quote=引用 楼主 初学额 的回复:] 这种方法从悬浮按钮切换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().equals Field 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到前台,有人懂吗? 谢谢啊!
人家切换到后台,你非要再自己切回来,这需求... 可以使用服务唤醒.开个服务轮询监测这个应用是否在前台,不是就设置成前台

    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;
    }
[/quote] 前后台自由切换,很多APP都可以实现,没有人研究过吗?
初学额 2019-08-26
  • 打赏
  • 举报
回复
引用 1 楼 亲爱的Joe的回复:
[quote=引用 楼主 初学额 的回复:] 这种方法从悬浮按钮切换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().equals Field 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到前台,有人懂吗? 谢谢啊!
人家切换到后台,你非要再自己切回来,这需求... 可以使用服务唤醒.开个服务轮询监测这个应用是否在前台,不是就设置成前台

    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;
    }
[/quote] 比如360的悬浮按钮,就可以切换到360主界面,这个需求很多啊
one salted fish 2019-08-26
  • 打赏
  • 举报
回复
没看懂........

80,352

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧