在多窗口中将焦点更改为第二个应用程序

时间:2019-07-15 09:37:07

标签: android multi-window split-screen

我有两个Android应用程序在平板电脑上以多窗口模式运行; App1和App2。 App1是焦点,我将广播从App1发送到App2。在那里,我使用startActivity从外部打开了一个网址。但是该Web URL在App1中而不是App2中打开,因为App1成为焦点。虽然我从App2启动了网址。

我想在App2中打开网址。因此,我可能首先需要将App2从我的代码中移开?该怎么做?

1 个答案:

答案 0 :(得分:0)

documentation之后,您可以使用 FLAG_ACTIVITY_LAUNCH_ADJACENT 要求Android在相邻的焦点窗口中打开给定的Intent

示例:

Intent intent = new Intent(getActivity(), Browser.class);
intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT);
getActivity().startActivity(intent);

文档摘录:

  

启动新活动时,可以向系统提示新活动应显示在当前活动附近。为此,请使用意图标志FLAG_ACTIVITY_LAUNCH_ADJACENT。传递此标志要求以下行为:

  -如果设备处于分屏模式,则系统尝试在启动该设备的活动旁边创建新活动,因此这两个活动共享屏幕。该系统不能保证能够执行此操作,但是会尽可能使活动相邻。
  -如果设备未处于分屏模式,则此标志无效。
  -如果设备处于自由格式模式,并且正在启动新活动,则可以通过调用ActivityOptions.setLaunchBounds()来指定新活动的尺寸和屏幕位置。如果设备未处于多窗口模式,则此方法无效。

  注意:如果您在任务堆栈中启动活动,则该活动将替换屏幕上的活动,并继承其所有多窗口属性。如果要在多窗口模式下将新活动作为单独的窗口启动,则必须在新的任务堆栈中启动它。