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("[email protected]", "password"); new AsyncTask<Void, Void, Void>() { @Override public Void doInBackground(Void... arg) { try { sender.sendMail("This is Subject", "This is Body", "[email protected]", "[email protected]"); } catch (Exception e) { Log.e("SendMail", e.getMessage(), e); } } }.execute(); } 
 public void onClick(View v) { final GMailSender sender = new GMailSender("[email protected]", "password"); new AsyncTask<Void, Void, Void>() { @Override public Void doInBackground(Void... arg) { try { sender.sendMail("This is Subject", "This is Body", "[email protected]", "[email protected]"); } catch (Exception e) { Log.e("SendMail", e.getMessage(), e); } return null;} }.execute(); } 

Gracias "dokkaebi"

  • Android ejecutando una instrucción if aunque no debería ejecutar nunca?
  • El depurador de Android Studio destaca las líneas incorrectas
  • Depuración de aplicaciones nativas de Android NDK
  • NDK Debug para Nexus 9 arm64-v8a no funciona para eclipse
  • GetBufferLock ha agotado el tiempo de espera para el subproceso
  • ¿Cómo puedo averiguar en qué intención comienza un servicio (no en mi aplicación)?
  • Depuración de módulos de biblioteca C ++ / nativa que no funcionan con Android Studio (Cmake utilizado)
  • Cómo solucionar el error "No se puede abrir el puerto de depuración" en Android Studio?
  • No se puede instalar el controlador USB de Android en Windows 7
  • La aplicación android se bloquea sin ninguna excepción al intentar iniciar sesión con google plus
  • Finalizar depuración en el dispositivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.