Android: detección de lanzamiento de aplicaciones desde el hogar o la historia
¿Cuál es la mejor manera de detectar cuándo se ha lanzado una "Aplicación" de Android desde la pantalla Inicio / Historial?
Básicamente, lo que estoy tratando de lograr es obligar al usuario a acceder a ciertas pantallas cada vez que vuelven a la aplicación (es decir, tienen acceso completo a todas las actividades una vez que se ha iniciado sesión, pero en esencia quiero que vuelva a autenticarse cuando se Volver a la aplicación mediante el inicio en la pantalla de inicio).
- ¿Cómo resulta un resultado de servicio a una actividad
- No se puede llamar a getSupportFragmentManager () de la actividad
- Android default launchMode de la actividad de LAUNCHER?
- ¿Cómo dar párrafos en una actividad?
- Public static variable o use putExtra método de clase de intención
Sé que se han hecho preguntas similares antes (es decir, cómo registrar los lanzamientos de una aplicación), pero ninguna de las que he visto todavía ha sido capaz de resolver mi problema. Todas las ideas bienvenidas …
- Android: inicia Firefox desde la aplicación
- Envío de SMS mediante programación sin necesidad de abrir la aplicación de mensajes
- Actividad refrescante al recibir la notificación de gcm push
- ¿Por qué android 'revive' las aplicaciones que se estrellan?
- Pasar objetos que extienden una clase abstracta entre actividades
- ¿Cómo crear un servicio de fondo siempre en ejecución?
- ¿Importa en qué orden llamo finish () y startActivity ()?
- Android: ¿Cómo obtener el color de fondo de Actividad en Java?
¿Cuál es la mejor manera de detectar cuándo se ha lanzado una "Aplicación" de Android desde la pantalla Inicio / Historial?
No puedes, AFAIK.
Básicamente, lo que estoy tratando de lograr es obligar al usuario a acceder a ciertas pantallas cada vez que vuelven a la aplicación (es decir, tienen acceso completo a todas las actividades una vez que se ha iniciado sesión, pero en esencia quiero que vuelva a autenticarse cuando se Volver a la aplicación mediante el inicio en la pantalla de inicio).
Utilice un sistema de inicio de sesión sensible y fácil de usar. Por ejemplo, si cree que sus credenciales de inicio de sesión son obsoletas basándose en el tiempo, obligué a iniciar sesión nuevamente. Puede hacerlo comprobando las credenciales en onCreate()
, y si están obsoletas, llame a startActivity()
para iniciar su actividad de inicio de sesión (o startActivity()
su diálogo de inicio de sesión, o lo que sea su forma de registrarlos).
Por supuesto, un enfoque aún mejor es omitir completamente el inicio de sesión. A menos que se trate de una "contraseña segura", una aplicación bancaria o cualquier otra cosa que necesite una seguridad superior a la media, no necesita que se conecten y sus usuarios se irritarán si consideran que su requisito de inicio de sesión es innecesario. La mayoría de las aplicaciones móviles no requieren autenticación.
Forzar un inicio de sesión basado en cómo llegaron a la actividad es hostil al usuario. Le está diciendo a los usuarios que se dediquen a utilizar sus teléfonos para cosas distintas de su aplicación que son ciudadanos de segunda clase.
Qué pasa
if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY )!=0) { Log.d(TAG, "Called from history"); }
? Esto utiliza una bandera de intención simple .
Simplemente cree una actividad de tocón que no tenga una vista de contenido e inicie otras actividades en el inicio de la aplicación
Por ejemplo, poner lo siguiente en onCreate:
Class<?> myclass; if(isTimeForActivity1){ myclass = Activity1.class; }else if(isTimeForActivity2){ myclass = Activity2.class; } startActivity(new Intent(this, myclass)); finish();
Trate de ver la aplicación "OI Safe" que tiene una solución bien diseñada (no sé si el código está bien diseñado, pero, verá: p)
- ¿Cómo centrar varias vistas juntas usando ConstaintLayout?
- Cantidad total de elementos de lista en un ListView