Android N Developer Preview 1のドキュメントでは、Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT
を使用して、Androidが別のウィンドウ(フリーフォーム)または隣接するペイン(分割画面)にアクティビティを開始するようにリクエストできることが示されています。 Googleのサンプルコードでは、これを達成するためにIntent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK
を使用しています。Android Nマルチウィンドウで別のウィンドウに同じアクティビティを起動するにはどうすればよいですか?
起動しているアクティビティが起動を行っているアクティビティと異なるクラスである場合、これは問題なく動作します。
したがって、たとえば、あなたが持っている場合は、次のコードを持っているMainActivity
は自身の別のインスタンスを起動します
Intent i=
new Intent(this, MainActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT |
Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
結果があるFLAG_ACTIVITY_LAUNCH_ADJACENT
は無視され、新しいアクティビティのインスタンスは、に行くこと既存のウィンドウまたはペイン。
ただし、他のアクティビティ(例:SecondActivity.class
)を開始すると、FLAG_ACTIVITY_LAUNCH_ADJACENT
は広告として動作します。
ユーザーがアプリから2つのスプレッドシート、2つのメモ帳、または2つのメモ帳を開くことを許可するにはどうすればよいですか? FLAG_ACTIVITY_LAUNCH_ADJACENT
を使用して、同じアクティビティの2つのインスタンスを起動するにはどうすればよいですか?
のためにこれを証明します。 #203404は 'android:minimalSize'(今は' android:minimalWidth')の欠陥を参照しています。 –
@PaulLammertsma:申し訳ありません!私には多くの問題があります。私は正しいリンクで答えを更新しました。 – CommonsWare
"たくさんの問題"が、b.android.comで除外されています! ;) –