android_java_handleの弱い参照

1366 ワード


   handle       static       ,         

 Activity finish ,                 1  ,      。       Activity Handler  ,    Handler      Activity。                 ,      Activity       ,          Activity  。

WeakReference SoftReference              ,           。
WeakReference    ,            GC   。                ,         GC  ,    Debug、          。                 ,           GC  。
   JDK Proxy           Weakrefrence   ,Proxy       Class        Weakrefrence   Map   Cache。

SoftReference    ,        ,  JVM  OutOfMemory,     GC  。               Cache。  Cache,                  ,    JVM    ,     OutOfMemoryError      ,        JVM  Cache   ,              Load Cache 。             。

private static class MainHandler extends Handler {
	private final WeakReference<BaseScanActivity> weakReference;
	BaseScanActivity activity;

	public MainHandler(BaseScanActivity activity) {
		weakReference = new WeakReference<BaseScanActivity>(activity);
		activity = weakReference.get();
	}

	@Override
	public void handleMessage(Message msg) {
		switch (msg.what) {
		case HadwareControll.BARCODE_READ: {
			activity.onBarcodeRead(msg.obj + "
"); break; } } }; }