如何在Android N多窗口中将相同的活动启动到单独的窗口中?

如何在Android N多窗口中将相同的活动启动到单独的窗口中?,第1张

概述Android N开发人员预览版1的文档表明您可以使用Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT来请求Android将活动发布到单独的窗口(自由格式)或相邻窗格(分屏). Google的示例代码显示使用Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK来实现这一目标. 如果正在启动的 Android N开发人员预览版1的文档表明您可以使用Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT来请求AndroID将活动发布到单独的窗口(自由格式)或相邻窗格(分屏). Google的示例代码显示使用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启动同一活动的两个实例?

解决方法 根据 this issue的讨论,您还需要混合FLAG_ACTIVITY_MulTIPLE_TASK:
Intent i=    new Intent(this,MainActivity.class)      .setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT |        Intent.FLAG_ACTIVITY_NEW_TASK |        Intent.FLAG_ACTIVITY_MulTIPLE_TASK);  startActivity(i);

然后两个活动实例将在单独的窗口/窗格/中.

This sample project为N Developer PrevIEw 1演示了这一点.

总结

以上是内存溢出为你收集整理的如何在Android N多窗口中将相同的活动启动到单独的窗口中?全部内容,希望文章能够帮你解决如何在Android N多窗口中将相同的活动启动到单独的窗口中?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1130827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存