关于android在fragment中调用getActivity()功能进行Toast或者setAdapter时空指针的异常
2015-03-23 14:58
471 查看
最近几天发现线上版本,多了好多NullPointerException空指针异常的错误。仔细检查发现大多实在fragment中调用getActivity方法时造成的。我想原因可能是用户请求网络了但是一直没结果就点击返回按钮了,你的activity被finish掉了但是异步任务还在进行,所以你在onPostExecute()方法为适配器添加数据或者Toast时就会造成空指针异常。我的解决办法一种是你在fragment中调用getActivity()之前都判断一下
if(getActivity == null){
return;
}
但是这种方法有点繁琐。另一种方法是你提前创建一个activity对象,最后一种方法是传递你的应用的Application对象替代getActivity(),例如:
if(getActivity == null){
return;
}
但是这种方法有点繁琐。另一种方法是你提前创建一个activity对象,最后一种方法是传递你的应用的Application对象替代getActivity(),例如:
public class MyApplication extends Application { private static DaoMaster daoMaster; private static DaoSession daoSession; private static MyApplication mInstance; public static MyApplication getInstance(){ return mInstance; } @Override public void onCreate() { super.onCreate(); if(mInstance == null){ mInstance = this; } }
然后就是toast时调用:<p class="p1">Toast.makeText(MyApplication.getInstance()<span style="font-family: Arial, Helvetica, sans-serif;">, "你的内容"</span><span style="font-family: Arial, Helvetica, sans-serif;">,</span><span style="font-family: Arial, Helvetica, sans-serif;">Toast.</span><span class="s2" style="font-family: Arial, Helvetica, sans-serif;">LENGTH_SHORT</span><span style="font-family: Arial, Helvetica, sans-serif;">).show();</span></p>
相关文章推荐
- Android在Adapter里面调用Activity或者fragment里面的的方法/变量代码
- Activity被回收导致被绑定Fragment调用getActivity()抛空指针异常
- 关于Fragment里面ListView.setAdapter(SimpleAdapter)报空指针的问题
- 关于Android setOnclicklistener抛出空指针的问题
- Android 调用已安装市场,进行软件评分的功能实现
- Android 调用已安装市场,进行软件评分的功能实现
- android开发中调用手机的豌豆荚、应用宝等市场进行评分操作,以及分享功能
- Android 调用已安装市场,进行软件评分的功能实现
- Android 调用已安装市场,进行软件评分的功能实现
- Android记录15--关于ListView中adapter调用notifyDataSetChanged无效的原因
- 关于Android setOnclicklistener抛出空指针的问题
- Android 调用已安装市场,进行软件评分的功能实现
- Android记录15--关于ListView中adapter调用notifyDataSetChanged无效的原因
- Android 调用已安装市场,进行软件评分的功能实现
- Android 调用已安装市场,进行软件评分的功能实现
- 【Android】从源码分析PagerAdapter/FragmentPagerAdapter调用notifydataSetChanged()刷新的原理
- 关于调用 FragmentPagerAdapter.notifyDataSetChanged() 不能更新
- Android 调用已安装市场,进行软件评分的功能实现
- Android 调用已安装市场,进行软件评分的功能实现
- 关于android上调用google的语音识别功能