为了学习Android,我正在编写一个小型应用程序。我要做的第一件事是通过远程API登录。

拨打电话时,我想显示一个“正在加载”对话框(以防用户使用移动互联网)。对它的研究表明了两种可能的方法。

一种是使用ProgressDialog和扩展Thread的私有类,另一种是使用扩展AsyncTask的私有类。

哪个最适合/更适合此任务?

我曾尝试使用ProgressDialog版本,但仍在挣扎。我已经将发出http请求的函数放在扩展的Thread run()方法中,但是不确定如何将响应数据(JSON)传递回我的活动中。

非常感谢您提供的所有帮助。

最佳答案

最好的方法是将AsyncTaskProgressDialog一起使用。您应该扩展AsyncTask并实现所需的所有方法:


onPreExecute()-在这里初始化ProgressDialogshow()
doInBackground()-在这里您可以工作
onPostExecute()-在这里您可以在dismiss()上调用ProgressDialog将其隐藏
(可选)onProgressUpdate()-如果确定,您可以在这里更改ProgressDialog的进度


get()类中有一个AsyncTask方法,可让您检索工作结果。您也可以在AsyncTask和调用Activity之间实现接口以返回结果。希望这可以帮助。

关于android - 在Android中发出HTTP请求时显示加载对话框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11472204/

10-13 03:30