Android 解决Handler在运行时加载报空指针异常
2015-07-31 13:45
423 查看
1.可自定义一个这样的WeakReferenceHandler
2.在Fragment创建一个新Handler并继承WeakReferenceHandler
[/code]
[/code]
public class WeakReferenceHandler<T> extends Handler { private final WeakReference<T> mReference; public WeakReferenceHandler(T referencedObject) { mReference = new WeakReference<>(referencedObject); } public WeakReferenceHandler(Looper looper, T referencedObject) { super(looper); mReference = new WeakReference<>(referencedObject); } protected T getReferencedObject() { return mReference.get(); } }
2.在Fragment创建一个新Handler并继承WeakReferenceHandler
private RangHandler mHandler;/** * 处理异步操作 */ private static class RangHandler extends WeakReferenceHandler<RankingFragment> { public RangHandler(RankingFragment referencedObject) { super(referencedObject); // TODO Auto-generated constructor stub } //编写自己的需要执行的任务 @Override public void handleMessage(Message msg) { RankFragment fragment = getReferencedObject(); if (fragment != null && fragment.getActivity() != null) { switch (msg.what) { case MSG_SHOW: fragment.refreshed(); if (fragment.mRankDataAdapter != null) { fragment.mRankDataAdapter.notifyDataSetChanged(); } break; case MSG_ERROR: if (fragment.isAdded()) Toast.makeText(fragment.getActivity(), R.string.error_response, Toast.LENGTH_SHORT).show(); fragment.refreshedFail(); break; default: if (fragment.isAdded()) Toast.makeText(fragment.getActivity(), R.string.error_response, Toast.LENGTH_SHORT).show(); break; } } } }
3.在onCreateView方法中实例化Handler
mHandler = new RangHandler(this);
[/code]
4.需要调用的地方时
mHandler.sendEmptyMessage(MSG_SHOW);
[/code]
相关文章推荐
- Android中Parcelable接口用法
- Android中的DatePick和TimerPick全
- ubuntu14.04-64编译android2.3.4源码
- Android 多媒体开发学习之简单的音乐播放器
- Android maxEms和maxLength
- android Listview checkbox 单选
- 详解Android开发中Fragment的使用
- Android开发周报: APK加壳技术、属性动画全解析
- Android 程序的安装、卸载和更新
- Android 客户端app编程——自定义控件
- android fragment中使用ContextMenu
- Android imageView图片按比例缩放
- 号称最快android虚拟机的genymotion安装出现virtualization engine not found plugin loading aborted另外一个原因
- android:匿名启动系统Activity方式(系统浏览器、相册、短信、电话)
- Android:异步消息源码解析
- Android之常用类型转换
- Android ListView相关功能介绍
- android 实现progressdialog 等待界面
- android.content.res.Resources$NotFoundException:+String+resource+ID+#0x1
- android 定制自己的log工具类