gpt4 book ai didi

android - 在同一进程中运行多个 MapActivities 的技术

转载 作者:可可西里 更新时间:2023-11-01 19:08:17 26 4
gpt4 key购买 nike

众所周知,在 Android 应用程序中使用 Google map 的人只能使用一个 MapActivity每个过程。有一个 bug discussing this in detail以及将每个 MapActivity 放在单独进程中的解决方法。出于某些原因,我不想在我的应用程序中执行此操作,并且开发了另一种似乎有效的解决方法。

对于每个 Activity包含一张 map ,我让它扩展ActivityGroup并创建/销毁 MapActivityonResume/onPause作为 child Activity 。这确保只有一个 MapActivity 的实例。一次(假设您一次显示一个 Activity)。以下是我的实现的简化版本:

public class MyMapActivityGroup extends ActivityGroup {

@Override
protected void onResume() {
super.onResume();

addMapView();
}

@Override
protected void onPause() {
super.onPause();

removeMapView();
}

private void addMapView() {
Intent intent = new Intent(this, MyMapActivity.class);
Window window = getLocalActivityManager().startActivity("map", intent);
setContentView(window.getDecorView());
}

private void removeMapView() {
setContentView(new FrameLayout(this));
getLocalActivityManager().removeAllActivities();
}

}

MapActivity我使用的是没什么特别的,不需要任何修改。它只是设置一个 MapView作为其内容 View 。

这对我来说似乎很好用。但是这样做有什么缺点吗?我主要担心的是在包含 map 的 Activity 之间切换时产生的内存泄漏。

最佳答案

我猜想不这样做的唯一原因是性能。 map Activity 可能已经有点麻烦了,尤其是在启动它的时候,所以如果你发现自己频繁分配和取消分配 View ,它的性能可能会很差。然而,它实际上取决于创建和删除 View 的频率,这完全取决于应用程序的行为方面。

关于android - 在同一进程中运行多个 MapActivities 的技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5118102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com