2012-07-19 41 views
4

在我的android应用程序中,一个活动需要超过10秒才能加载(它包含许多带有很长文本值的TextViews),现在我想在活动加载期间显示一个进度条对话窗口?可以通过使用'AsyncTask'吗?如果可能的话,我怎样才能暂停UI线程,直到AsyncTask完成,当我试图在setContentView()调用之前显示一个对话框时,我得到了一个错误,如 android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不是一个应用程序是否可以在android活动中调用setContentView()之前显示进度条对话框?

+0

哇,你有多少textviews你的布局,使其加载10秒!? – eftokay83 2012-07-19 12:01:35

+0

试图显示一个对话框之前setContentView()只会给你这种错误.Show后,并在设置文本视图后解雇 – AkashG 2012-07-19 12:03:43

+0

实际上它是一个“报告”页面,这就是为什么我需要在单个活动中的所有文本浏览 – user1537684 2012-07-19 12:04:19

回答

0

您可以使用AsyncTaskViewswitcher向布局之间切换时间(每个布局是一个视图)。首先设置你的contentViewonPostExecute(加载后)切换你的布局。
编辑:
有关更多详细信息,请参阅this page

+0

@ user1537684请参阅我的编辑。 – hasanghaforian 2012-07-19 12:18:23

0

,你可以添加一个计时器线程,你可以把你想帮助的第二个活动完成加载

+0

你能分享相关的代码吗?我不能让你.... – Venkatesh 2012-07-19 12:05:53

+0

线程定时器=新的Thread(){ \t \t \t公共无效的run(){ \t \t \t \t尝试{ \t \t \t \t \t睡眠(3000); //睡眠3秒 \t \t \t \t}赶上(InterruptedException的发送){ \t \t \t \t \t e.printStackTrace(); \t \t \t \t} {终于 \t \t \t //什么计时器结束后做 \t \t} \t \t} \t}; \t \t timer.start(); – Omar 2012-07-19 12:10:58

+0

其更专业做一个AsyncTask而不是 – Omar 2012-07-19 12:13:32

相关问题