您的位置:首页 > 移动开发 > Android开发

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的时候发生了崩溃。

//加载数据
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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ZProgressHUD 崩溃