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_TASKandroid:launchMode="standard"android:launchMode="singleInstance"FLAG_ACTIVITY_MULTIPLE_TASK

私が作成したのPreferenceActivityは、これPreferenceActivityが開いているときにアプリが複数のダイアログボックス、つまり異なるデータを持つ複数のインスタンスを作成することです。ただし、開いていない場合、アプリは明確にするために複数のインスタンスを作成せず、別のダイアログを開きません。Logcatは警告やエラーを出していません。

私の質問:

  1. からアクティビティの複数のインスタンスを作成するにはどうすればよい BroadcastReceiverですか?

  2. 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 に答える