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
- Error: No se puede obtener el puente de depuración en el estudio de Android
- Depuración de Kernel de Android
- ¿Cómo puedo ejecutar depurador y establecer puntos de interrupción en Android Studio?
- Error de instalación INSTALL_FAILED_ACWF_INCOMPATIBLE
- No se puede dejar caer al marco?
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
- Cómo imprimir valores durante la depuración
- IntelliJ IDEA editar código de android durante la depuración
- ¿Es posible ver variables en tiempo de ejecución?
- No se pueden depurar muestras NDK con Android Studio 1.3.2 en Windows
- Android Studio Debug y DDMS
- Android Soundpool.play () no funciona en el lanzamiento buld
- Galaxy S5 Lollipop - no todos los puntos de interrupción detienen la ejecución bajo Android Studio debugger
- traceview no puede escribir la tarjeta sd
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"