【发布时间】:2011-09-30 13:18:30
【问题描述】:
我想在此期间在onCreate() 中发出一个http 请求(我使用ksoap2),我想在屏幕上显示一个ProgressDialog 来阻止用户。请求完成后,我想使用从 http 请求中检索到的元素来完成我的 onCreate。
现在:
我有一个实现 Runnable 的类。我在我的 onCreate 中实例化它。此类发出 http 请求,在此期间 ProgressDialog 在屏幕上。完成后,ProgressDialog 将被解除。但是由于它不在 UI 线程中,所以在获取 http 请求的结果之前执行了 onCreate 的以下操作。
我也尝试过,起初:在 onCreate 中,我执行我的 ProgressDialog 的 show(),然后是 http 请求,然后是 dismiss() ProgressDialog,最后以我的 http 请求的结果完成我的 onCreate... 没关系,除了ProgressDialog 这次没有显示。
对不起,我的解释很混乱,我的英语也没有帮助。
无论如何,想法?
谢谢。
PS : 顺便说一句,我知道 AsyncTask 更好,这是我通常使用的,但将它与 ProgressDialog 一起使用并不容易。
我的问题更多:onCreate() 中有没有办法发出 http 请求以获取 int 的值。发出此请求时:显示ProgressDialog 以阻止用户但也阻止 UI 线程,以便 onCreate 结束后可以使用 http 请求检索到的值。
一种丑陋的方式是 onCreate 中的一个循环,其中睡眠等待检索值......这真的很丑陋。
【问题讨论】:
-
您应该选择 AsyncTask,即使它并不容易。这是解决您问题的正确方法。
-
如果我解决了我的问题,我肯定会回到这个。我编辑我的问题更清楚......我希望。谢谢。
标签: android progressdialog ksoap2