我正在尝试在基于web的应用程序框架(quickconnect)中实现本机MapView。现在,整个框架由一个活动组成(这是不可避免的,因为框架完全在WebView中运行应用程序的主体,并且框架解析对本地功能(如声音和本地系统视图)的javascript调用)。我意识到MapView是一个奇怪的野兽,因为它需要在MapActivity中运行。
因此,这给我留下了两个选项,将运行框架的单个"活动"转换为MapActivity,添加在内部操作MapView的方法(问题是,我们希望将代码贡献回框架项目,而系统对MapActivities的处理与正常的"活动"不同,导致所有非地图应用程序消耗的资源超过了必要的数量),或者以某种方式将MapActivity覆盖在运行WebView的主Activity之上,主Activity通过Intents与MapActivity通信。
我完全意识到覆盖Activities与Android应用程序的设计完全矛盾,但我想知道这是否可能。我研究过ActivityGroups,找不到任何自定义ActivityGroup的例子,它同时在屏幕上显示两个活动,更不用说重叠了。
tl;dr:在安卓系统中实现重叠活动可能吗?我该怎么做?
目前尚不清楚您的目标将如何实现。假设您确实有"重叠的活动"。然后呢?你得到了什么?第一个活动中的JavaScript代码不能对第二个活动执行任何操作。您必须在MapActivity
中为MapActivity
实现100%的业务逻辑。既然您将不得不教"快速连接"如何调用startActivity()
,那么只需将您的映射实现为Java中的常规MapActivity
即可
如果OTOH,您的目标是使用支持快速连接的JavaScript代码来管理MapView
,那么您别无选择,只能重构整个快速连接以使用组合而不是继承,因此快速连接引擎可以在Activity
或MapActivity
中使用。无论如何,从长远来看,这可能是必要的,因为FragmentActivity
对于使用Android兼容库中的片段是必要的。人们可能会认为,快速连接应该使用片段提供平板电脑和电视支持。