Android - 后台 Activity 将自身带到前台

标签 android android-activity background task

我有以下情况:

  1. Activity A 启动 Activity B
  2. 用户按下主屏幕按钮并启动另一个应用
  3. 一段时间后,我希望 Activity B 将自身(而不是创建新实例)带到前台

我该怎么做?

我尝试使用 FLAG_ACTIVITY_REORDER_TO_FRONT、FLAG_FROM_BACKGROUND 的 Intent ,并将 B 的启动模式设置为 singleTask、singleInstance,但它们都不起作用。

最佳答案

只需根据您的情况在您的 Activity 中使用此方法即可。它会起作用的。

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

               }
        }
    }
}

您还需要在 list 中添加以下权限。

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

关于Android - 后台 Activity 将自身带到前台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20306350/

相关文章:

Android ListView 滚动条

android - 无法实例化 PlayersActivity NullPointerException 错误

java - 将 GPS 位置发送到 Web 服务

java - 如何从firebase实时数据库获取数据

java - Android Activity生命周期: why isn't calling the super method first enforced?

html - iOS 设备上未显示背景图片的问题

在 ICS 中使用 ViewPager 更改 Android 背景颜色

android - 通知和 AlarmManager - 取消我设置的闹钟

android - 如何在 Activity 之间切换

android - 在 android Activity 类中动态更改可绘制的开始颜色和结束颜色