使用 2 个简单的活动。第一个活动只包含一个按钮来启动第二个包含地图的活动:
主要活动:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goToMap(View view){ //This is just the onClick method for the button
Intent intent=new Intent( this, BigMapTest.class);
startActivity(intent);
}
地图活动:
public class BigMapTest extends FragmentActivity {
SupportMapFragment mapFragment;
GoogleMap map;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.travel_diary_big_map);
mapFragment=(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.big_map);
map=mapFragment.getMap();
}
地图活动的 XML 布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/big_map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment"
/>
现在,当我运行这段代码时,按下按钮移动到带有地图的 Activity,然后按下返回到第一个 Activity ......然后重复这个过程,我可以看到堆的大小每次都在增加,直到达到这是极限,然后它开始夹紧。如果您在地图(即缩放)方面搞得更糟一点,此时我可能会遇到 OOM 异常。
01-25 16:10:13.931: D/dalvikvm(21578): GC_FOR_ALLOC 释放 1898K, 7% 空闲 45859K/49187K, 暂停 204ms 01-25
16:10:14.671: I/dalvikvm-heap(21578): 钳制目标 GC堆从 52.724MB 到 48.000MB 01-25
16:10:14.671:D/dalvikvm(21578):GC_CONCURRENT 释放 2534K,6% 空闲 46554K/49187K,暂停 3ms+14ms
01-25 16:10:15.372:I/dalvikvm -heap(21578): 将目标 GC 堆从 52.979MB 钳制到 48.000MB 01-25
16:10:15.382: D/dalvikvm(21578): GC_CONCURRENT freed 2273K, 5% free 46815K/49187K, paused 3ms+15ms
01-25 16:10:15.622: I/dalvikvm-heap(21578): 将目标 GC 堆从 52.604MB 钳制到 48.000MB 01-25
16:10:15.622: D/dalvikvm(21578): GC_FOR_ALLOC 释放 657K,6% 释放 46431K/ 49187K,暂停 202ms
01-25 16:10:16.203:I/dalvikvm-heap(21578):将目标 GC 堆从 52.959MB 钳制到 48.000MB 01-25
16:10:16.203:D/dalvikvm(21578):GC_FOR_ALLOC 释放 1469K,5%免费 46796K/49187K,暂停 217 毫秒 01-25
16:10:16.203:I/dalvikvm-heap(21578):强制收集软引用以分配 278744 字节
01-25 16:10:16.423:I/dalvikvm-heap(21578 ): 将目标 GC 堆从 52.952MB 钳制到 48.000MB 01-25
16:10:16.423: D/dalvikvm(21578): GC_BEFORE_OOM 释放 9K, 5% free 46786K/49187K, 暂停 219ms 01-25
16:10:16.423: E/dalvikvm-heap(21578):278744 字节分配内存不足。
任何建议/帮助将不胜感激。