Android N Developer Preview 1 的文档表明您可以使用Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT
请求 Android 将 Activity 启动到单独的窗口(自由形式)或相邻的窗格(分屏)中。谷歌的示例代码显示使用Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK
来完成此操作。
如果正在启动的活动与开始的活动是不同的类,这很好用。
因此,例如,如果您有一个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
可以按照宣传的方式工作。
如果您想允许用户从您的应用程序中打开两个电子表格、两个记事本或两个任意内容,该怎么办?我们如何使用FLAG_ACTIVITY_LAUNCH_ADJACENT
来启动同一活动的两个实例?