Android中的重叠活动

时间:2011-06-03 21:18:00

标签: android view android-activity android-layout activitygroup

我正在尝试在基于Web的应用程序框架(quickconnect)中实现本机MapView。现在整个框架由一个Activity组成(这是不可避免的,因为框架完全在WebView中运行应用程序的主体,并且框架将javascript调用解析为本机功能,例如声音和本机系统视图)。我意识到MapView是一个奇怪的野兽,因为它需要在MapActivity中运行。

所以这给我留下了两个选项,将运行框架的单个Activity转换为MapActivity,添加操作MapView内部的方法(问题是我们希望将代码贡献回框架项目) ,并且系统以不同于正常活动的方式处理MapActivities,导致所有非地图应用程序使用超过必要的资源),或以某种方式将MapActivity叠加在运行WebView的主Activity上,主要活动与之通信MapActivity通过Intents。

我完全意识到覆盖活动与Android应用程序的设计完全矛盾,但我想知道它是否可行。我查看了ActivityGroups,我找不到任何自定义ActivityGroup的例子,它们同时在屏幕上显示两个活动,永远不会重叠。

tl; dr:在Android中实现重叠活动,我该怎么做?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您的目标将如何实际运作。假设你确实有“重叠活动”。那又怎样?你有什么收获?它不像第一个活动的JavaScript代码可以对第二个活动做任何事情。您将不得不为MapActivity中的MapActivity实施100%的业务逻辑。由于您将不得不教授“快速连接”如何无论如何调用startActivity(),只需在Java中将您的地图实现为常规MapActivity,并完成它。

如果,OTOH,您的目标是支持快速连接的JavaScript代码来管理MapView,那么您别无选择,只能重构整个quickconnect以使用组合而不是继承,因此快速连接引擎可以是在ActivityMapActivity中使用。从长远来看,这可能是必要的,因为FragmentActivity对于在Android兼容性库中使用片段是必需的,并且可以想象quickconnect应该使用片段提供平板电脑和电视支持。