mInterHandler是一个私有静态内部类继承自Handler,内部持有MainActivity的弱引用,这样做的目的是避免内存泄露WeakReference<MainActivity>中的MainActivty是你所在的类。
private InterHandler mInterHandler = new InterHandler(this);
private static class InterHandler extends Handler{
private WeakReference<MainActivity> mActivity;
public InterHandler(MainActivity activity){
mActivity = new WeakReference<>(activity);
}
@Override
public void handleMessage(Message msg) {
MainActivity activity = mActivity.get();
if (activity != null) {
switch (msg.what) {
case REFRESH_COMPLETE:
activity.mListView.setOnRefreshComplete();
activity.mAdapter.notifyDataSetChanged();
activity.mListView.setSelection(0);
break;
}
}else{
super.handleMessage(msg);
}
}
}
private static class MyHandler extends Handler {
private WeakReference<DataActivity> activityWeakReference;
//nfc初始化之后不再初始化
private boolean nfcInit = false;
public MyHandler(DataActivity activity) {
activityWeakReference = new WeakReference<>(activity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
DataActivity dataActivity = activityWeakReference.get();
if (dataActivity == null) {
return;
}
switch (msg.what) {
case ByteUtil.MESSAGE_VALID_NFCSTART://NFC开始
break;
}
}
}