Proteger con contraseña el lanzamiento de la aplicación Android

Estoy buscando una forma de proteger con contraseña mi aplicación Android en el lanzamiento, es decir, al iniciar / reanudar una actividad perteneciente a mi apk-paquete un cuadro de diálogo de contraseña se mostrará.

He intentado algunos acercamientos a esto (extendiendo la clase de la aplicación y así sucesivamente) pero ningunos parecen trabajar. O no se ejecutan en el subproceso UI o el cuadro de diálogo no se muestra en cada ocasión de inicio / reanudar.

M

Así que esta es la solución que me quedé con. En mi clase de aplicación, almaceno una variable larga con la hora del sistema cuando se ha detenido por última vez una actividad.

import android.app.Application; public class MyApplication extends Application { public long mLastPause; @Override public void onCreate() { super.onCreate(); mLastPause = 0; Log.w("Application","Launch"); } } 

En cada método onPause actualizo este valor a la hora actual.

 @Override public void onPause() { super.onPause(); ((MyApplication)this.getApplication()).mLastPause = System.currentTimeMillis(); } 

Y en cada onResume lo comparo con el tiempo actual. Si ha transcurrido cierto tiempo (actualmente 5 segundos), se muestra mi solicitud de contraseña.

 @Override public void onResume() { super.onResume(); MyApplication app = ((MyApplication)act.getApplication()); if (System.currentTimeMillis() - app.mLastPause > 5000) { // If more than 5 seconds since last pause, prompt for password } } 

Aplicación de subclase, y establecer una variable de allí en si la próxima vez que algo sucede en su aplicación, debe solicitar un diálogo o no.

En su Actividad, Servicio, etc … utilizando el Contexto que recibe, obtenga su Aplicación, si la var está configurada para mostrar el diálogo, desde su Código de Actividad (es decir, el Hilo de la UI) muestra su diálogo. Probablemente pondrías esto en tu código onResume.

En onPause, establezca la variable para mostrarla la próxima vez. En onResume, establezca como false.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.