首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步程序流/显示ProgressDialog

异步程序流/显示ProgressDialog
EN

Stack Overflow用户
提问于 2013-11-13 11:30:44
回答 1查看 46关注 0票数 0

我有一些代码,a)大约需要10.20秒来执行b)返回一个用于进一步处理的值( c)由用户调用

因此,我创建了这样一个结构:

代码语言:javascript
复制
ProgressDialog pd = new ProgressDialog(ctx);  
pd.setCancelable(false);
pd.setCanceledOnTouchOutside(false);
pd.setTitle(ctx.getResources().getText(R.string.progress));
pd.setMessage(ctx.getResources().getText(R.string.wait_keygen));
pd.setIndeterminate(true);

returnValue=doSomeDifficultCalculationsHere();

pd.dismiss();

现在我的问题是:进度对话没有显示,它似乎也被阻塞的doSomeDifficultCalculationsHere()-function阻塞了。

当我将doSomeDifficultCalculationsHere()放入自己的线程并执行Thread.join()以等待该函数的结果时,也不会显示对话,因为Thread.join()阻塞了。

当我将ProgressDialog放到线程中时,我会得到一个异常。

那么,如果不能真正异步调用ProgressDialog (),那么我还能如何解决这个问题,并让ProgressDialog显示出来,因为以下所有步骤都需要它的结果?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-13 11:31:46

你需要在pd.show()之前做returnValue=doSomeDifficultCalculationsHere();

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19952625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档