我在哪里扩展AsyncTask?

时间:2012-02-10 07:56:26

标签: android android-asynctask

我有一个由以下元素组成的登录系统:

LoginActivity使用LoginController使用RestClient通过Execute()调用Web服务。我希望异步执行对Web服务的调用,但我还需要一个对话框,以便在进行调用时通知用户相关信息。执行不会返回任何内容。

我将如何做到这一点?我在哪里使用AsyncTask?

1 个答案:

答案 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
}