我有一个由以下元素组成的登录系统:
LoginActivity使用LoginController使用RestClient通过Execute()调用Web服务。我希望异步执行对Web服务的调用,但我还需要一个对话框,以便在进行调用时通知用户相关信息。执行不会返回任何内容。
我将如何做到这一点?我在哪里使用AsyncTask?
答案 0 :(得分:0)
AsyncTask有一些方法可以帮助你解决这个问题。
扩展AsyncTask:
public class MyTask extends AsyncTask<Object, Void, Void>
@Override
protected void onPreExecute() {
// show progress dialog
}
@Overrride
protected Void doInBackground(Object... params) {
HttpUriRequest req = (HttpUriRequest) params[0];
String myString = (String) params[1];
// connect
return null;
}
@Override
protected void onPostExecute(Void result) {
// hide dialog
}
}
要使用参数执行此操作,请尝试以下操作:
myTask.execute(request, "aString");
其中request是HttpUriRequest类型的对象。记住参数的顺序很重要。
如果要在服务连接时更新状态,可以使用此方法,如Rasel所说:
onProgressUpdate() {
// Update view in progress dialog
}