Handler的弱引用

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);
			}
		}
	}

猜你喜欢

转载自blog.csdn.net/xxdw1992/article/details/82993029
今日推荐