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).

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 …

¿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 cambiar la actividad de inicio en android?
  • Actualización de una actividad desde un AsyncTask
  • NullPointerException en findViewById () en android
  • Cambiar programaticamente el color de la forma en la lista de capas
  • Acceso a SharedPreferences mediante métodos estáticos
  • Android studio> crear un nuevo proyecto> Actividad de Google Play Services: ¿Qué es esto?
  • ¿Cuál es el uso de la actividad de preferencia en android?
  • Cómo cambiar entre actividades con viewflipper
  • Regresando de una actividad usando navigateUpFromSameTask ()
  • Definición de la actividad de android como diálogo con tema de luz
  • Android: Restaurar la actividad activa mientras se reanuda la aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.