gpt4 book ai didi

Android,如何将任务带到前台?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:53 26 4
gpt4 key购买 nike

我的问题:

如何在使用以下规则时在其自己的任务中启动新 Activity 。

1) 如果 Activity 已经作为另一个 Task 的根存在(在同一应用程序中),则将 Task 置于前台。我不想创建 Activity 的另一个实例。我只希望它是根的任务来到前台,并显示任务的顶部 Activity 。

注意:它一次只会是一个任务的根,并且只会作为任务的根存在,不会存在于其他地方。

2) 如果 Activity 不存在,则在其自己的任务中创建此 Activity 。

我为什么要努力实现这一目标?我在 Activities 的底部创建了四个底部,它们的行为应该像选项卡一样。因此,如果我按下第二个“选项卡”,我希望显示与该选项卡关联的 Activity 。但是,如果它已经存在并且位于其自身任务的底部,那么我希望该任务与当前位于任务顶部的任何 Activity 一起显示。

到目前为止我尝试了什么?我搜索了 stackOverflow 并找不到类似的问题。我读了http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.htmlhttp://blog.akquinet.de/2010/04/15/android-activites-and-tasks-series-intent-flags/

我想我需要使用 FLAG_ACTIVITY_NEW_TASK 和/或相似性但不确定。请寻找帮助。

谢谢,布拉德利4

最佳答案

我能够为 Android 版本解决这个问题 >= Honeycomb:

@TargetApi(11)
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("yourproject") > -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,如何将任务带到前台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com