gpt4 book ai didi

Android:恢复特定的 Activity 实例

转载 作者:行者123 更新时间:2023-11-30 03:06:22 25 4
gpt4 key购买 nike

在我的 Android 应用程序中,我有一个相同 Activity 的打开实例列表(这个 Activity 基本上包含一个 WebView。)当用户点击列表中的一个项目时,我想恢复根据显示正确网站的 Activity 。但是,使用带有标记 Intent.FLAG_ACTIVITY_SINGLE_TOPIntent.FLAG_ACTIVITY_REORDER_TO_FRONT 的 Intent 将无法解决问题,因为 Activity 是相同的(只是具有不同附加功能的不同实例)。

我认为我必须使用多个(例如 10 个)具有不同名称的相同 Activity 。然后每个网站在其自己的 Activity 中启动。但是,当我要打开超过10个网站时,我又遇到了麻烦。

关于如何解决这个问题还有其他想法吗?

最佳答案

要解决此问题,您可以依靠 Android Tasks .

你必须做的:

使用标志启动 WebView Activity :Intent.FLAG_ACTIVITY_NEW_TASKIntent.FLAG_ACTIVITY_MULTIPLE_TASK

在这些 Activity 中调用 getTaskId() 并使 ID 可用于您的主要 Activity 。当您想恢复 Activity 时,请执行以下操作:

ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
am.moveTaskToFront(taskId, 0);

需要权限permission android.Manifest.permission.REORDER_TASKS

当您想从 WebView 任务(由单个 Activity 组成)返回主任务时,请执行以下操作:

Context context = getApplicationContext();
String packageName = context.getPackageName();
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(packageName);
launchIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(launchIntent);

关于Android:恢复特定的 Activity 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21747465/

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