0

私のアプリケーションでは、電子メールを送信したいと考えています。

AsyncTask を使用していますが、postExecute メソッドでプログレスバーを停止できるように、メールが配信されているかどうかをどのように認識できますか。助けてください。これが私のコードです。メールを送信するのはうまくいきます...

public class SendMainActivity extends Activity {
Button send = null;
EditText mailid = null;
String emailId = null;
ConnectivityManager conMan = null;
NetworkInfo Info = null;
ProgressBar  pro = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    send = (Button)findViewById(R.id.button1);
    mailid = (EditText)findViewById(R.id.editText1);
    pro = (ProgressBar)findViewById(R.id.progressBar1);

    send.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            Info = conMan.getActiveNetworkInfo();
            emailId = mailid.getText().toString();

            if(Info == null){
                Toast.makeText(getApplicationContext(), "no net connection ", Toast.LENGTH_LONG).show();
            }else{

                new SendEmail().execute();

            }   
        }
    });



}


class SendEmail extends AsyncTask<Void, Void, Integer>{

      @Override
        protected void onPreExecute()
        {
          pro.setVisibility(View.VISIBLE);
          pro.setProgress(0);
        }

    @Override
    protected Integer doInBackground(Void... params) {
        // TODO Auto-generated method stub

        try {   
          GmailSender sender = new GmailSender("usermailid@gmail.com", "userpass");
          sender.sendMail("This is Subject",   
                  "This is Body how r u ..",   
                  "usermailid@gmail.com",   
                  emailId);   
      } catch (Exception e) {   
          Log.e("SendMail", e.getMessage(), e);   
      } 
        return null;
    }
    @Override
    protected void onPostExecute(Integer result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        pro.destroyDrawingCache();
    }
  }
}
4

1 に答える 1

0

簡単に言えば、メールが配信されたかどうかを認識できません。

ここにあるクラスである GmailSender を使用しています

さて、このクラスではメールを送信するメッセージだけで、配信などを確認することはありません。

それを行うのは複雑になります。ほとんどの場合、独自のクライアントを最初から作成する必要があります。

メールが送信されたら、プログレス バーを終了させませんか?

于 2012-12-19T11:22:02.117 に答える