Android 在哪里扩展异步任务?

Android 在哪里扩展异步任务?,android,android-asynctask,Android,Android Asynctask,我有一个由以下元素组成的登录系统: LoginActivity使用LoginController使用RestClient调用带有Execute的web服务。我希望对web服务的调用以异步方式执行,但我还需要一个对话框,以便在进行调用时通知用户相关信息。Execute不返回任何内容 我该怎么做呢?我在哪里使用AsyncTask?AsyncTask有一些方法可以帮助您解决这个问题 扩展异步任务: public class MyTask extends AsyncTask<Object, Voi

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

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


我该怎么做呢?我在哪里使用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
  }
}
其中request是HttpUriRequest类型的对象。记住重要参数的顺序

如果您想在服务连接时更新状态,可以使用Rasel所说的方法:

onProgressUpdate() {
  // Update view in progress dialog
}

您可以重写AsyncTask的onProgressUpdate方法以显示对话框。publishProgress将调用onProgressUdate.OK。我可能像个白痴一样问,但似乎doInBackground需要回报一些东西。我希望由doInBackground执行的方法保存了它内部需要的所有数据,因此不返回任何内容。为什么我不能宣布它无效?好的。最后一件事。您建议我在哪里创建我的私有CallServiceTask类?稍后我会在我的应用程序的其他部分需要它,所以显而易见的选择似乎是在RestClient中。这是正确的吗?我在myTask extends AsyncTask中到底声明了什么?我建议将它作为一个自己的类,您可以在需要的地方包含它。只需使用新的CallServiceTask.execute;至于Vars,第一个是doInBackground的输入类型,您可以将其放入其中。execute,第二个是发送给onProgressUpdate的类型,最后一个是doInBackground发送给onPostExecuteThanks的结果类型。这非常有帮助。很抱歉还有另一个问题,但是如果我需要执行HttpUriRequest和字符串作为参数,AsyncTask会是什么样子?具体来说,私有类CallServiceTask扩展AsyncTask看起来像什么?
onProgressUpdate() {
  // Update view in progress dialog
}