2

问题

我有一个简单的 Android 应用程序,其中包含 3 个活动:登录、Browse_Catalog 和 View_Item。在 ChromeOS 上,我希望活动堆叠在一个窗口中。相反,每个 Activity 都出现在 ChromeOS 上自己独立管理的窗口中。为什么会这样?我该如何阻止这种行为?

要求

我希望有一些配置细节可以将活动堆叠在一个窗口中。我尝试在启动 Activity 的 Intent 中寻找一些标志,或者在 Manifest 中寻找一些设置,但没有发现任何表明这种行为是故意的,或者有办法禁用它。

技术细节

ChromeOS 76.0.3809.102 (Official Build)(64-bit)
Asus Chromebox 
Android Studio 3.4.2
targetSdkVersion: 28
minSdkVersion: 25
jvmTarget: 1.8

观察

  1. 据我所知,没有错误消息。只是一个糟糕的用户体验,多个窗口导致用户认为有三个单独的程序正在运行。

  2. 应该隐藏在 backstack 上的活动不是很敏感,窗口管理器允许在重新声明活动的 z 排序之前短暂调整它们的大小。

  3. 窗口管理器确实允许我从后台关闭一个活动/窗口(例如,在查看项目时浏览目录),但随后从顶部退出活动无处可去。

不满意的可能解决方法

我可以通过全屏启动活动来解决这个问题,但感觉就像一个巨大的杂物。它不会阻止用户最小化或调整单个窗口的大小。

也许我可以将其作为具有多个片段的单个活动来完成,但我不想投入那么多工作,除非我绝对必须这样做。

4

1 回答 1

0

为了后代:我的错误是 Browse_Catalog Activity 在 Manifest 中有一行

<activity ...
     android:launchMode="singleInstance"
    />

这会将活动创建为单个“任务”,并且不会在该任务中启动任何其他活动。 这是一个页面,其中包含有关活动、任务和 BackStack 的更多详细信息

默认行为(aka android:launchMode="standard")是我所期望的,因此删除这个虚假设置解决了这个问题。

于 2019-08-23T05:04:24.803 回答