从BroadcastReceiver启动活动的多个实例

时间:2012-10-20 18:58:03

标签: android broadcastreceiver android-activity

我想从BroadcastReceiver创建活动的多个实例,活动包含AlertDialog,目前我正在使用以下代码:

 Intent intent = new Intent(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,为什么会创建多个实例?

1 个答案:

答案 0 :(得分: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);

希望这也适合你。