为了学习Android,我正在编写一个小型应用程序。我要做的第一件事是通过远程API登录。
拨打电话时,我想显示一个“正在加载”对话框(以防用户使用移动互联网)。对它的研究表明了两种可能的方法。
一种是使用ProgressDialog和扩展Thread的私有类,另一种是使用扩展AsyncTask的私有类。
哪个最适合/更适合此任务?
我曾尝试使用ProgressDialog版本,但仍在挣扎。我已经将发出http请求的函数放在扩展的Thread run()方法中,但是不确定如何将响应数据(JSON)传递回我的活动中。
非常感谢您提供的所有帮助。
最佳答案
最好的方法是将AsyncTask
与ProgressDialog
一起使用。您应该扩展AsyncTask
并实现所需的所有方法:onPreExecute()
-在这里初始化ProgressDialog
并show()
doInBackground()
-在这里您可以工作onPostExecute()
-在这里您可以在dismiss()
上调用ProgressDialog
将其隐藏
(可选)onProgressUpdate()
-如果确定,您可以在这里更改ProgressDialog
的进度get()
类中有一个AsyncTask
方法,可让您检索工作结果。您也可以在AsyncTask
和调用Activity
之间实现接口以返回结果。希望这可以帮助。
关于android - 在Android中发出HTTP请求时显示加载对话框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11472204/