我理解这个主题已被覆盖了几次,并且通常所提出的具有"多个"MapActivity类的解决方案是在不同的进程中运行一个.我不想这样做,我有3个.
我改为重构了一个MapActivity Subclass以在3种不同的模式下运行.
package com.rossgreenhalf.maptest.activity;
import android.os.Bundle;
import com.google.android.maps.MapActivity;
public class MyMapActivity extends MapActivity {
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
/* Inflate xml view, Set Zoom etc */
}
@Override
protected void onResume() {
super.onResume();
int mode = getIntent().getExtras().getInt("MAP_MODE");
switch(mode){
case 1:
/* Some markers to show */
break;
case 2:
/* Just one Marker */
break;
case 3:
/* Only showing my location */
break;
}
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我允许MapActivity的多个实例驻留在任务堆栈中,因为它的启动模式仍设置为"标准".这种方法似乎工作正常,我没有得到一些似乎得到的连接池关闭消息,我有点困惑,是否实际存在多个MapActivity实例或者android是否自动重用? …