Java 无参数异步任务

Java 无参数异步任务,java,android,android-asynctask,Java,Android,Android Asynctask,我想在我的应用程序的背景下发送和发送电子邮件。 我遵循这个示例并实现了它 代码运行正常 但是,我有一个演示,我需要解释代码。 在代码中,SendMailTask扩展了AsyncTask,没有任何额外的参数,甚至没有Void 我被困在这一点上,因为我搜索过,没有人用这种方式。 有人能给我解释一下吗?如果您没有指定任何泛型参数,您将看到它将把对象作为一个类型(所有类的基类) 因此,如果只使用AsyncTask 您实际上是在处理对象 例如-查看给定链接中doInBackground()的参数如果没有

我想在我的应用程序的背景下发送和发送电子邮件。 我遵循这个示例并实现了它

代码运行正常
但是,我有一个演示,我需要解释代码。 在代码中,SendMailTask扩展了AsyncTask,没有任何额外的参数,甚至没有Void

我被困在这一点上,因为我搜索过,没有人用这种方式。
有人能给我解释一下吗?

如果您没有指定任何泛型参数,您将看到它将把
对象
作为一个类型(所有类的基类)

因此,如果只使用
AsyncTask

您实际上是在处理
对象


例如-查看给定链接中
doInBackground()
的参数如果没有参数,AsyncTask将采用默认类(即Object)

因此,从电子邮件、从密码等都进入Object1数组。
您可以使用arg[index]在doInBackground方法中访问它们。

老实说,它们扩展AsyncTask的方式并不聪明。它会在Android Studio中引起许多恼人的警告,扩展
AsyncTask
也同样容易,效果相同,但它会删除警告

综上所述,为了使用该类,您只需调用以下命令:

Object[] args = new Object[]{
    arg1,
    arg2,
    etc
};
new SendMailTask(activity).execute(args);

您只需检查
GMail
构造函数,看看应该如何对参数进行排序。

您所说的“sendMailTask扩展AsyncTask,没有任何额外参数,甚至无效”是什么意思?他的意思是
extends AsyncTask
而不是
extends AsyncTask
向我们展示您描述的代码阅读此答案,它应该告诉您所有需要的内容,如下面的“public class SendMailTask extends AsyncTask{….带有AsyncTask..方法的代码”这是一个非常简单的答案。如果您愿意,请尝试更详细地解释您可以声明
列表a将被视为
列表a
public class SendMailTask extends AsyncTask <Object1, Object2, Object3> {

    @Override
    protected Object doInBackground(Object1... args) {
    ...    

       //publishProgress calls "onPublishProgress" method
       //e.g. publishProgress("email sent.");  
       publishProgress(object2); 

       //last line returns to "onPostExecute" method
       //e.g. return null;
       return object3; 
    }

    @Override
    public void onProgressUpdate(Object2... values) {
    ...

    }

    @Override
    public void onPostExecute(Object3 result) {
    ...
    } 
}
            new SendMailTask(SendMailActivity.this).execute(fromEmail,
                    fromPassword, toEmailList, emailSubject, emailBody);
Object[] args = new Object[]{
    arg1,
    arg2,
    etc
};
new SendMailTask(activity).execute(args);