Uso de AsyncTask para enviar correo electrónico de Android
Recientemente he hecho una pregunta con respecto al código siguiente:
Envío de correo electrónico en Android mediante API de JavaMail sin usar la aplicación predeterminada / incorporada
Yo había pedido esto en lo que respecta a un error de red, como por una pregunta anterior:
Necesita ayuda para depurar el código de correo electrónico
Mi pregunta es, ¿cómo implementaría un AsyncTask para enviar correctamente un correo electrónico con este código de Android? Cada tutorial que veo me informa que debo hacer
extend AsyncTask {
Sin embargo, GMailSender.java ya tiene esto definido como:
public class GMailSender extends javax.mail.Authenticator
¿Podría alguien ayudarme? ¡Gracias!
NOTA:
Por favor, no seas como el idiota que había -1 ed esta pregunta y publicó la respuesta exacta como se dio en el envío de correo electrónico en Android utilizando JavaMail API sin necesidad de usar el defecto / built-in app . No puedo utilizar esa codificación exacta, debido a que ya no es posible ejecutar una operación de red en el subproceso principal de una aplicación de Android. Estoy buscando una manera de utilizar AsyncTask para ejecutar la operación en segundo plano. Lo que no puedo averiguar es cómo hacerlo
extend AsyncTask {
Sin tocar
public class GMailSender extends javax.mail.Authenticator
Hay un ejemplo bastante bueno en la página doc de AsyncTask
.
Pase su objeto GMailSender
a un AsyncTask
y llame a GMailSender#sendMail
durante doInBackground
.
Es decir,
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(); }
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(); }
Gracias "dokkaebi"