2010-08-18 9 views
6

Necesito ayuda con el manejo de la salida de la aplicación. Mi aplicación tiene múltiples Actividad decir: - EntryAct, Act1, Act2 .... Act10.Aplicación de Android al salir Evento

Cuando el usuario presiona la tecla de inicio en cualquiera de estas actividades, necesito hacer algunos ajustes de marca.

Manejo de la tecla de inicio en cada aplicación ¡La actividad no es posible! ¿Alguien puede decir cómo se puede lograr esto?

No se puede cambiar nada en OnPause, OnStop o OnDestory de todas las actividades Act1 ... Act10. :-(

Respuesta

0

hacerlo en el método onPause() que se llama tan pronto como la actividad no más está en primer plano.

7

su problema puede ser resuelto si se utiliza una clase de aplicaciones personalizadas. Decir como

public class MyApp extends android.app.Application 
{ 
} 

y dentro de ésta ponga su código que desea ser llamado en cualquier lugar de su aplicación.

Ahora sólo se necesita para conseguir el objeto de la aplicación en su Activity como esto

MyApp app = (MyApp) getApplication(); 
app.setUpBeforeClosingApp(); 

y puede poner esto dentro de cada onDestroy() de Actividad y desde aquí el manejo del código antes de que se puedan realizar las acciones de cierre.

+0

¿Por qué no simplemente crear un singleton y poner la función setUpBeforeClosingApp allí? Como esta función es personalizada, ¿qué poder proporciona el objeto Aplicación además de un singleton personalizado? – Subby

+0

Tenga en cuenta que no se garantiza que OnDestroy dispare – Bamerza

1

En primer lugar, es posible detectar el evento clave en casa de una manera indirecta, como se muestra en mi post acerca de matar a una aplicación cuando se pulsa la tecla de inicio: How to close Android application?

También es posible determinar si una actividad es la actividad raíz en su método onDestroy() y luego hace que llame a una clase auxiliar para realizar el procesamiento final si es la actividad raíz. Mejor aún sería crear una actividad personalizada de la que hereden todas sus actividades, colocar la lógica de procesamiento final en el método onDestroy() de la actividad personalizada y luego hacer que todas las subclases llamen a super.onDestroy() en su método onDestroy(). Esto es similar a lo que se hace en la publicación mencionada anteriormente: How to close Android application?, así como las publicaciones sobre cómo crear pantallas de configuración cuando se presiona el botón de menú, además de manejar el botón de búsqueda y el botón de retorno.

Espero que esto ayude.

+0

La mejor solución es: moveTaskToBack (true); android.os.Process.killProcess (android.os.Process.myPid()); System.exit (1); –

Cuestiones relacionadas