gpt4 book ai didi

java - 为 RunningTaskInfo 设置唯一标识符

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:59 25 4
gpt4 key购买 nike

我最近正在编写一个 Android 应用程序,并使用 FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_MULTIPLE_TASKS 创建多个 Activity 。
我想通过使用 getRunningTasks 获取这些新任务(以及 Activity )的信息。
另外我想为这些任务设置一些唯一的标识符,以便方便地管理它们。
我尝试使用描述,但无法修改。代码如下:

    ActivityManager am = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfos = am.getRunningTasks(2);
ActivityManager.RunningTaskInfo currentTaskInfo = taskInfos.get(0);
am.getRunningTasks(2).get(0).description = "dfasdfsa";
Toast.makeText(this,am.getRunningTasks(2).get(0).description, 10).show();

当Toast显示时,description的值仍然是null。我似乎无法更改它。
请给我一个为任务设置唯一标识符的解决方案。
我真的很感谢你的帮助! :)

最佳答案

首先,这不是设置任务描述的方法。要设置您的任务描述,您需要使用此方法:

ActivityManager.TaskDescription taskDescription = 
new ActivityManager.TaskDescription("label");
this.setTaskDescription(taskDescription);

这是一个简单的TaskDescription构造函数,更多构造函数请查看: https://developer.android.com/reference/android/app/ActivityManager.TaskDescription您可以在那里设置更多描述变量。

其次,am.getRunningTasks(2).get(0).description 这个在不久前就被废弃了,但是,一些供应商甚至不允许在此之前使用它。

要检查您的描述是否设置为您的值,例如,您可以运行

adb shell dumpsys activity activities

但是,如果您确实想在运行时检查它,则在 API 21 之后可用:

final ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.AppTask> appTasks = am.getAppTasks();
for(ActivityManager.AppTask task : appTasks) {
Log.d("TaskDesc", "taskDesc: " + task.getTaskInfo().taskDescription);
}

关于java - 为 RunningTaskInfo 设置唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25199404/

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