0

我想从中创建一个活动的多个实例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为什么要创建多个实例?

4

1 回答 1

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

希望这对你也有效。

于 2013-01-04T05:51:07.303 回答