2 つの簡単なアクティビティを使用します。マップを保持する 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"
/>
このコードを実行すると、ボタンを押してマップのあるアクティビティに移動し、戻るボタンを押して最初のアクティビティに移動します...このプロセスを繰り返すと、ヒープが到達するまで毎回サイズが増加することがわかりますそれは限界であり、それからクランプを開始します。マップ (ズームなど) をもう少しいじると、この時点で 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 解放 2273K、5% 解放 46815K/49187K、一時停止 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 に
クランプフリー 46796K/49187K、一時停止 217ミリ秒
01-25 16:10:16.203: I/dalvikvm-heap(21578): 278744 バイト割り当ての SoftReferences のコレクションを強制
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% は 46786K/49187K を解放し、219ms
01-25 16:10:16.423: E/dalvikvm-heap(21578): 278744 バイトの割り当てでメモリが不足しています。
任意の提案/ヘルプをいただければ幸いです。