Android:恢复活动的特定实例

时间:2014-02-13 07:07:54

标签: android resume

在我的Android应用中,我有一个相同活动的已打开实例列表(此活动基本上包含WebView。)当用户点击列表中的某个项目时,我想恢复显示的相应活动正确的网站。但是,使用带有标记Intent.FLAG_ACTIVITY_SINGLE_TOPIntent.FLAG_ACTIVITY_REORDER_TO_FRONT的intent不会起作用,因为Activity是相同的(只是具有不同额外内容的不同实例)。

我想我必须使用不同名称的多个(例如10个)相同的活动。然后,每个网站都在自己的活动中启动。但是,当我想开设超过10个网站时,我又遇到了麻烦。

其他任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

你需要做什么:

使用标记Intent.FLAG_ACTIVITY_NEW_TASKIntent.FLAG_ACTIVITY_MULTIPLE_TASK

启动WebView活动

在这些活动中调用getTaskId()并将ID提供给您的主要活动。如果要恢复活动,请执行以下操作:

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