Android使用 ZProgressHUD 发生崩溃的问题
2016-04-16 00:00
399 查看
摘要: 我的Android项目中使用了 ZProgressHUD(https://github.com/zelic91/zprogresshud) 来显示页面数据加载效果,但是最近发现某个页面的崩溃问题时,确认为ZProgressHUD引起的。
我的Android项目中使用了 ZProgressHUD(https://github.com/zelic91/zprogresshud) 来显示页面数据加载效果,但是最近发现某个页面的崩溃问题时,确认为ZProgressHUD引起的。
情况是这样的,我的页面在加载数据时,使用ZProgressHUD进行加载,在加载完成后,使用ZProgressHUD的dismissWithSuccess显示加载成功,然后跳转到另外一个Activity的时候发生了崩溃。
后来查看ZProgressHUD的代码发现,dismiss是线程处理的并进行了500毫秒的睡眠。因为我的代码已经跳转到OtherActivity,原来的MyActivity的context已失效,所以其关联的Dialog也失效了,导致程序崩溃。在源码中去掉了500毫秒的延迟就正常了。
我的Android项目中使用了 ZProgressHUD(https://github.com/zelic91/zprogresshud) 来显示页面数据加载效果,但是最近发现某个页面的崩溃问题时,确认为ZProgressHUD引起的。
情况是这样的,我的页面在加载数据时,使用ZProgressHUD进行加载,在加载完成后,使用ZProgressHUD的dismissWithSuccess显示加载成功,然后跳转到另外一个Activity的时候发生了崩溃。
//加载数据 progressHUD = new ZProgressHUD(this); progressHUD.setMessage("加载中"); progressHUD.show(); //完成加载,显示成功页面 progressHUD.dismissWithSuccess("成功"); Intent intent = new Intent(MyActivity.this, OtherActivity.class); startActivity(intent);
后来查看ZProgressHUD的代码发现,dismiss是线程处理的并进行了500毫秒的睡眠。因为我的代码已经跳转到OtherActivity,原来的MyActivity的context已失效,所以其关联的Dialog也失效了,导致程序崩溃。在源码中去掉了500毫秒的延迟就正常了。
protected void dismissHUD() { AsyncTask<String, Integer, Long> task = new AsyncTask<String, Integer, Long>() { @Override protected Long doInBackground(String... params) { SystemClock.sleep(500); return null; } @Override protected void onPostExecute(Long result) { super.onPostExecute(result); dismiss(); reset(); } }; task.execute();
相关文章推荐
- Visual Studio 2010崩溃重启问题(源文件编译崩溃)
- Android崩溃异常捕获方法
- 解决iOS7上UITextField限制字数输入导致崩溃问题的方法
- 解决QSqlTableModel::setData()崩溃的问题
- 当程序崩溃的时候怎么办
- 拯救该死的系统
- 原位升级-拯救WinXP系统的救命稻草
- AMD显卡驱动修复导致GNOME崩溃问题
- app应用LOG反馈,应用崩溃log获取
- tomcat jsp加载ocx,浏览器崩溃
- android studio关于隐藏标题栏崩溃问题
- 可见的异常
- UITableCell 的删除崩溃原因
- IOS编程开发中的问题小结(一)
- jni接口NewStringUTF崩溃
- Android 收集已发布程序的崩溃信息
- Android崩溃(一):小红点BadgeView导致的崩溃
- 前台--一个css冲突导致的ie6崩溃
- SimpleConfig结果显示导致app崩溃
- forin遍历,解决Collection <__NSArrayM: 0x7ffa5261aa70> was mutated while being enumerated崩溃的问题