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

M. *_*han 6 android multi-window split-screen

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

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

Hug*_*sse 1

按照文档,您可以要求 Android使用. FLAG_ACTIVITY_LAUNCH_ADJACENT

例子:

Intent intent = new Intent(getActivity(), Browser.class);
intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT);
getActivity().startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

文档摘录:

当您启动一项新活动时,您可以提示系统新活动应显示在当前活动旁边(如果可能)。为此,请使用意图标志 FLAG_ACTIVITY_LAUNCH_ADJACENT。传递此标志请求以下行为:

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

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