Android使用 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)