android:launchMode="singleInstance"
menifestファイルに設定することで単一インスタンスを実現できることを知っています。しかし、私は実行時にそれをやりたいです。FLAGを設定することで達成できると思いますが、魔女が1つかどうかはわかりません。plzzが私を助けてくれます。よろしくお願いします。
3 に答える
Intent.FLAG_ACTIVITY_SINGLE_TOP
一般に、、、の組み合わせを使用して、必要なことを実行Intent.FLAG_ACTIVITY_CLEAR_TOP
できIntent.FLAG_ACTIVITY_REORDER_TO_FRONT
ますIntent.FLAG_ACTIVITY_NEW_TASK
。ただし、どちらを使用するかは、状況によって異なります。
これはあなたが探しているものです
Intent intent= new Intent(context, YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
更新:android:launchMode="singleInstance"
マニフェストでも必要になる場合があります
singleInstanceは、起動またはリサイクルされたアクティビティが新規または既存のタスクで作成され、他のアクティビティをその上にスタックできないことを指定します。システムは、それから開始されたすべてのアクティビティが他のタスクに実行されることを保証します。
1つのタスクと1つのアクティビティ。
新しいアクティビティで作成されたすべてのインテントでフラグを指定しなくても、アクティビティによって開始される以降のアクティビティを防ぐことができると私が知っているインテントフラグはありません。
したがって、答えはこれは不可能です。
以前に投稿された回答は、これがどのように見えるかを模倣していますが、動作は仕様に反しています。