Android: Mostrar brindis después de terminar la aplicación / actividad
Quiero mostrar un simple brindis, al salir de una aplicación. El problema es que el brindis no se muestra. Supongo que es porque la actividad ha terminado o debido a System.exit(0)
, pero no sé cómo solucionarlo. ¿Alguien tiene una propina? ¡¡Gracias!!
En mi actividad tengo el código siguiente:
- Catch toast evento (desde cualquier aplicación) y obtener mensaje tostadas
- Android - llamando al hilo de ui del hilo de trabajo
- Android Detener la notificación de brindis por programación?
- "Tostar" un mensaje a través de TimerTask
- Cómo activar la configuración de la aplicación 'Mostrar notificaciones' en 4.1 Jelly Bean for Toast Messages
Toast.makeText(this,"Exit application.",Toast.LENGTH_SHORT).show(); exitApp(); public void exitApp (){ App.getInstance().exit(); finish(); }
Y la salida mehod en App:
public void exit() { System.exit(0); }
- El servicio de accesibilidad no se ha iniciado
- Diálogo de ocultar de Android después de tiempo establecido, como un tostado personalizado de intervalo de tiempo
- El método onPreferenceChange no se llama cuando los cambios de Listpreferences
- Cómo utilizar Toast en ASyncTask / onPostExecute con cadena de recursos?
- Activa / desactiva Toast desde las preferencias compartidas?
Es recomendable que llame al final para cerrar su aplicación en lugar de llamar a System.exit(0);
Ya que este enfoque matará su aplicación completamente. System.exit()
mata todo el proceso. finish()
sólo oculta, detiene y destruye su actividad. Su proceso todavía se está ejecutando.
Sólo puede utilizar finish();
Para cerrar su actividad y esto debería resolver su problema.
http://groups.google.com/group/android-developers/browse_thread/thread/63de8a9cdffa46a3?pli=1
Acabo de disparar un nuevo hilo para dar tiempo a que el Toast se muestre antes de que el proceso del sistema se destruya. Echale un vistazo:
private Runnable checkForAdBlockRun = new Runnable() { @Override public void run() { boolean blocked = false; try { blocked = AdBlockUtil.areAdsBlocked(); if (blocked) { Log.w(TAG, "Ads are blocked on this device."); adBlockHandler.sendEmptyMessage(0); } } catch (Exception e) { Log.w(TAG, "Could not check for ad blocking", e); } } }; private Handler adBlockHandler = new Handler() { @Override public void handleMessage(Message message) { Toast.makeText(instance, "Can not run this app with adblock on", Toast.LENGTH_LONG).show(); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(3000); } catch (Exception e) { } System.exit(0); } }).start(); } };