Android 异步任务中的意图和延迟

Android 异步任务中的意图和延迟,android,android-asynctask,Android,Android Asynctask,我写了一个android应用程序,用SMTP发送电子邮件。但当AsyncTask完成工作时,它会立即关闭statusDialog。我想让statusDialog延迟3秒,然后转到另一个活动。请帮帮我 public class SendMailTask extends AsyncTask { private ProgressDialog statusDialog; private Activity sendMailActivity; public SendMailTask(Activity a

我写了一个android应用程序,用SMTP发送电子邮件。但当AsyncTask完成工作时,它会立即关闭statusDialog。我想让statusDialog延迟3秒,然后转到另一个活动。请帮帮我

public class SendMailTask extends AsyncTask {

private ProgressDialog statusDialog;
private Activity sendMailActivity;

public SendMailTask(Activity activity) {
    sendMailActivity = activity;

}

protected void onPreExecute() {
    statusDialog = new ProgressDialog(sendMailActivity);
    statusDialog.setMessage("Getting ready...");
    statusDialog.setIndeterminate(false);
    statusDialog.setCancelable(true);
    statusDialog.show();
}

@Override
protected Object doInBackground(Object... args) {
    try {
        Log.i("SendMailTask", "About to instantiate GMail...");
        publishProgress("Processing input....");
        GMail androidEmail = new GMail(args[0].toString(),
                args[1].toString(), (List) args[2], args[3].toString(),
                args[4].toString());
        publishProgress("در حال آماده سازی درخواست...");
        androidEmail.createEmailMessage();
        publishProgress("در حال ثبت درخواست...");
        androidEmail.sendEmail();
        publishProgress("درخواست ثبت شد");
        Log.i("SendMailTask", "Mail Sent.");
    } catch (Exception e) {
        publishProgress(e.getMessage());
        Log.e("SendMailTask", e.getMessage(), e);
    }
    return null;
}

@Override
public void onProgressUpdate(Object... values) {
    statusDialog.setMessage(values[0].toString());

}

@Override
public void onPostExecute(Object result) {
    statusDialog.dismiss();
}

}

onPostExecute
方法中,为解除操作添加延迟:

new Handler().postDelayed(new Runnable(){
   @Override
   public void run(){
       statusDialog.dismiss();
       sendMailActivity.startActivity(new Intent(sendMailActivity, ...));
   }
}, 3000);

onPostExecute
方法中,为解除操作添加延迟:

new Handler().postDelayed(new Runnable(){
   @Override
   public void run(){
       statusDialog.dismiss();
       sendMailActivity.startActivity(new Intent(sendMailActivity, ...));
   }
}, 3000);
试试这个:)

试试这个:)


我希望statusDialog有3秒的延迟,所以添加一个延迟。问题是什么?我现在不知道如何执行此操作,然后发送到其他活动为什么要添加三秒钟?真的有必要吗?当发送电子邮件成功时,它会显示消息。之后我想自动发送到其他活动。现在不知道这是怎么做的你知道如何搜索吗?谷歌还是什么?我想让statusDialog有3秒的延迟,所以添加一个延迟。问题是什么?我现在不知道如何执行此操作,然后发送到其他活动为什么要添加三秒钟?真的有必要吗?当发送电子邮件成功时,它会显示消息。之后我想自动发送到其他活动。现在不知道这是怎么做的你知道如何搜索吗?谷歌还是什么?它需要实现方法,然后你的代码在处理程序中出现错误。请确保你导入了正确的处理程序(android.os.Handler),而不是日志导入。。。并将“…”替换为预期的活动它需要实现方法,然后处理程序中的代码出现错误。请确保导入正确的处理程序(android.os.Handler),而不是日志导入。。。并用您的预期活动替换“…”