2012-10-20 190 views
0

启动一个活动的多个实例我想从BroadcastReceiver创建活动的多个实例,该活动包含一个AlertDialog,目前我使用下面的代码用于此目的:从广播接收器

意向意图=新意图(this,MultipleInstanceActivity.calss); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);

,并在清单文件android:launchMode="standard"我总觉得这FLAG_ACTIVITY_NEW_TASK导致android:launchMode="standard"更改为android:launchMode="singleInstance"什么的。我无法创建此活动的多个实例。我也试过用FLAG_ACTIVITY_MULTIPLE_TASK,但没用。 我创建了一个PreferenceActivity,真正让我感到困惑的是,当这个PreferenceActivity打开时,我的应用程序创建了多个对话框,即具有不同数据的多个实例。但是,当它没有打开,我的应用程序不会创建多个实例只是为了清楚,它不会打开另一个对话框。 Logcat不会给出任何警告或错误。

我的问题: 1.如何从BroadcastReceiver创建一个活动的多个实例。 2.有人可以解释我在第二种情况发生了什么,PreferenceActivity之一,为什么它创建多个实例?

谢谢

+2

你能解释一下你为什么要启动多个活动?一次只能看到一个,所以我不明白你的目标是什么。 – Ralgha

+0

基本上它是一个简单的应用程序,使创建显示文字信息内容的对话框,现在我需要多个实例,因为如果我收到一个短信,由于某种原因,我无法读取它,它应该创造出的内容的另一个对话框新的活动。只有当PreferenceActivity打开时才会发生这种情况。 –

+0

Doest有道理。新活动将成为另一项活动,而不是当前活动的另一个实例。 – smk

回答

2

我遇到同样的问题,因为你在这里,我同时使用FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_MULTIPLE_TASK解决它。

Intent intent = new Intent(context, YourActivityClass.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
context.startActivity(intent); 

希望这对你也有效。