たぼさんの部屋

いちょぼとのんびり

T207 WeakReference

Main.java

package com.efolab.t207;

import java.lang.ref.WeakReference;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;

public class Main extends Activity {
	Context context;
	LinearLayout base;
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	
	    // TODO Auto-generated method stub
	    context = getApplicationContext();
	    base = new LinearLayout(context);
	    setContentView(base);
	    String TAG = "MAIN";
	    
	 // Integer オブジェクトの弱参照を保持する
	    Integer integer = new Integer(123456);
	    WeakReference<Integer> ref = new WeakReference<Integer>(integer);
	     
	    // WeakReference の中身を取得・表示
	    Integer i = ref.get();
	    Log.d(TAG, "i=" + i);
	     
	    // 強参照を全て無くす
	    integer = null;
	    i = null;
	    System.gc();
	    Log.d(TAG, "GC");
	     
	    // GC 実行後に中身を取得・表示
	    i = ref.get();
	    Log.d(TAG, "i=" + i);
	}

}