Android-后台活动将自己带到了前台 [英] Android - Background activity bring itself to foreground

查看:281
本文介绍了Android-后台活动将自己带到了前台的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下情况:

  1. 活动A开始活动B
  2. 用户按下主页"按钮启动另一个应用程序
  3. 过一会儿,我希望活动B将自身(而不是创建新实例)带到前台

我该怎么做?

我尝试将意图与FLAG_ACTIVITY_REORDER_TO_FRONT,FLAG_FROM_BACKGROUND一起使用,并将B的启动模式设置为singleTask,singleInstance,但它们都不起作用.

I tried using intents with FLAG_ACTIVITY_REORDER_TO_FRONT, FLAG_FROM_BACKGROUND and set B's launch mode as singleTask, singleInstance but none of them work.

推荐答案

只需根据您的情况在活动中使用此方法.它会起作用.

Just use this method in your activity as per your situation. it will work.

protected void moveToFront() {
        if (Build.VERSION.SDK_INT >= 11) { // honeycomb
            final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
            final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);

            for (int i = 0; i < recentTasks.size(); i++) 
            {
                   Log.d("Executed app", "Application executed : " 
                           +recentTasks.get(i).baseActivity.toShortString()
                           + "\t\t ID: "+recentTasks.get(i).id+"");  
                   // bring to front                
                   if (recentTasks.get(i).baseActivity.toShortString().indexOf("Your app pckg name") > -1) {                     
                      activityManager.moveTaskToFront(recentTasks.get(i).id, ActivityManager.MOVE_TASK_WITH_HOME);

               }
        }
    }
}

还需要在清单中添加以下权限.

Also you need to add below permission in manifest.

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />

这篇关于Android-后台活动将自己带到了前台的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆