7

android:launchMode="singleInstance" menifestファイルに設定することで単一インスタンスを実現できることを知っています。しかし、私は実行時にそれをやりたいです。FLAGを設定することで達成できると思いますが、魔女が1つかどうかはわかりません。plzzが私を助けてくれます。よろしくお願いします。

4

3 に答える 3

10

Intent.FLAG_ACTIVITY_SINGLE_TOP一般に、、、の組み合わせを使用して、必要なことを実行Intent.FLAG_ACTIVITY_CLEAR_TOPできIntent.FLAG_ACTIVITY_REORDER_TO_FRONTますIntent.FLAG_ACTIVITY_NEW_TASK。ただし、どちらを使用するかは、状況によって異なります。

于 2012-07-19T07:16:14.250 に答える
4

これはあなたが探しているものです

Intent intent= new Intent(context, YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

更新:android:launchMode="singleInstance"マニフェストでも必要になる場合があります

于 2012-07-19T07:12:06.960 に答える
1

singleInstanceは、起動またはリサイクルされたアクティビティが新規または既存のタスクで作成され、他のアクティビティをその上にスタックできないことを指定します。システムは、それから開始されたすべてのアクティビティが他のタスクに実行されることを保証します。

1つのタスクと1つのアクティビティ。

新しいアクティビティで作成されたすべてのインテントでフラグを指定しなくても、アクティビティによって開始される以降のアクティビティを防ぐことができると私が知っているインテントフラグはありません。

したがって、答えはこれは不可能です。

以前に投稿された回答は、これがどのように見えるかを模倣していますが、動作は仕様に反しています。

于 2016-08-21T18:04:32.173 に答える