6

最近、次のコードに関する質問をしました。

デフォルト/組み込みアプリを使用せずにJavaMail APIを使用してAndroidで電子メールを送信する

以前の質問に従って、ネットワーク エラーに関してこれを尋ねました。

電子メール コードのデバッグにヘルプが必要

私の質問は、この Android コードでメールを正常に送信するために AsyncTask を実装するにはどうすればよいですか? 私が見るすべてのチュートリアルは、私がやるべきことを教えてくれます

extend AsyncTask {

ただし、GMailSender.java には既に次のように定義されています。

public class GMailSender extends javax.mail.Authenticator

誰でも私を助けることができますか?ありがとう!

ノート:

デフォルト/組み込みアプリを使用せずに JavaMail API を使用して Android でメールを送信するにあるように、この質問を-1編集して正確な回答を投稿した馬鹿のようにならないでください。Android アプリケーションのメイン スレッドでネットワーク操作を実行することができなくなったため、その正確なコーディングを使用することができません。バックグラウンドで操作を実行するために AsyncTask を使用する方法を探しています。私が見つけることができないのは、どうすればよいかです

extend AsyncTask {

触れずに

public class GMailSender extends javax.mail.Authenticator
4

2 に答える 2

8

AsyncTaskドキュメントページにかなり良い例があります。

GMailSenderオブジェクトをに渡し、の間AsyncTaskに呼び出します。GMailSender#sendMaildoInBackground

あれは、

public void onClick(View v) {
    final GMailSender sender = new GMailSender("username@gmail.com", "password");
    new AsyncTask<Void, Void, Void>() {
        @Override public Void doInBackground(Void... arg) {
            try {   
                sender.sendMail("This is Subject",   
                    "This is Body",   
                    "user@gmail.com",   
                    "user@yahoo.com");   
            } catch (Exception e) {   
                Log.e("SendMail", e.getMessage(), e);   
            } 
        }
    }.execute();

}
于 2013-01-17T08:11:38.233 に答える
1
public void onClick(View v) {
final GMailSender sender = new GMailSender("username@gmail.com",       "password");
new AsyncTask<Void, Void, Void>() {
    @Override public Void doInBackground(Void... arg) {
        try {   
            sender.sendMail("This is Subject",   
                "This is Body",   
                "user@gmail.com",   
                "user@yahoo.com");   
        } catch (Exception e) {   
            Log.e("SendMail", e.getMessage(), e);   
        } 
    return null;}
}.execute();

}

ありがとう「ドッケビ」

于 2015-01-08T04:08:20.787 に答える