update Handler avoid memory leak.

master
winfirm 11 years ago
parent 60a68c41f3
commit 4028fefe4f

@ -1,5 +1,7 @@
package com.allthelucky.common.view;
import java.lang.ref.WeakReference;
import android.os.Handler;
import android.os.Message;
@ -163,17 +165,21 @@ public class AutoPlayManager {
}
}
static class BroadcastHandler extends Handler {
private AutoPlayManager autoBrocastManager;
private static class BroadcastHandler extends Handler {
private final WeakReference<AutoPlayManager> autoBrocastManagerRef;
public BroadcastHandler(AutoPlayManager autoBrocastManager) {
this.autoBrocastManager = autoBrocastManager;
this.autoBrocastManagerRef = new WeakReference<AutoPlayManager>(
autoBrocastManager);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (this.autoBrocastManager != null) {
AutoPlayManager autoBrocastManager = autoBrocastManagerRef.get();
if (autoBrocastManager != null) {
autoBrocastManager.handleMessage(msg);
}
}

@ -1,5 +1,6 @@
package com.allthelucky.common.view;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -386,7 +387,29 @@ public class ImageIndicatorView extends RelativeLayout {
}
}
public class MyPagerAdapter extends PagerAdapter {
/**
* ScrollIndicateHandler
*/
private static class ScrollIndicateHandler extends Handler {
private final WeakReference<ImageIndicatorView> scrollIndicateViewRef;
public ScrollIndicateHandler(ImageIndicatorView scrollIndicateView) {
this.scrollIndicateViewRef = new WeakReference<ImageIndicatorView>(
scrollIndicateView);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
ImageIndicatorView scrollIndicateView = scrollIndicateViewRef.get();
if (scrollIndicateView != null) {
scrollIndicateView.refreshIndicateView();
}
}
}
private class MyPagerAdapter extends PagerAdapter {
private List<View> pageViews = new ArrayList<View>();
public MyPagerAdapter(List<View> pageViews) {
@ -441,20 +464,3 @@ public class ImageIndicatorView extends RelativeLayout {
}
}
class ScrollIndicateHandler extends Handler {
private ImageIndicatorView scrollIndicateView;
public ScrollIndicateHandler(ImageIndicatorView scrollIndicateView) {
this.scrollIndicateView = scrollIndicateView;
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (this.scrollIndicateView != null) {
scrollIndicateView.refreshIndicateView();
}
}
}

Loading…
Cancel
Save