package com.github.captain_miao.android.ble;
import android.os.Handler;
import android.os.Message;
import java.lang.ref.WeakReference;
/**
* @author YanLu
* @since 2015-09-14
*/
public class AppHandler<T> extends Handler {
private final WeakReference<T> mReference;
protected HandleMessageListener<T> mMessageListener;
public AppHandler(T reference) {
this.mReference = new WeakReference<>(reference);
}
public AppHandler(T reference, HandleMessageListener<T> listener) {
this.mReference = new WeakReference<>(reference);
this.mMessageListener = listener;
}
@Override
public final void handleMessage(Message msg) {
T reference = mReference.get();
if (reference != null && mMessageListener != null) {
mMessageListener.onHandleMessage(reference, msg);
}
}
public void setMessageListener(HandleMessageListener<T> messageListener) {
this.mMessageListener = messageListener;
}
public HandleMessageListener<T> getMessageListener() {
return mMessageListener;
}
public interface HandleMessageListener<T> {
void onHandleMessage(T reference, Message msg);
}
}