5

enter image description here Soy nuevo en el desarrollo de aplicaciones de Android. Tengo un pequeño problema. Trabajar en mi aplicación de Android golpea repentinamente el botón "Inicio" para pasar al fondo luego de un tiempo volver a " Inicio "y haga clic en el ícono de mi aplicación, comenzando desde la primera pantalla, en lugar de esto, tengo la última actividad visualizada y debería mostrar un mensaje como" Su sesión ha expirado. Registre de nuevo la casilla con dos cuadros EditText ". Luego, compruebe las credenciales. y Permitir al usuario continuar o redirigir a la pantalla de inicio de sesión. Cómo lograr esto.Cómo mantener el manejo del tiempo de espera de la sesión en la aplicación Android

Gracias de antemano ..

+0

¿Está utilizando la arquitectura de Server Client? – Shrikant

+0

No, solo quiero mantener el inicio de sesión seguro, eso es todo ... – Srinivasan

Respuesta

3

Es simple en Android. necesita mantener SharedPreferences.

Lea this para una mejor comprensión del concepto.

Esto funcionará como

==> when ever you are trying to maintain login concept save user name in the sharedpreference. 
==> once data is edited in prefernces.xml , the data in it can be check in any Activity. 

Por ejemplo, para guardar nombre de usuario, contraseña y el ID de sesión, puede:

SharedPreferences pref = myContexy.getSharedPreferences("Session Data", MODE_PRIVATE); 
SharedPreferences.Editor edit = pref.edit(); 
edit.putString("User Name", username); 
edit.putString("Password", password); 
edit.putInt("Session ID", session_id); 
edit.commit(); 

y conseguir que

SharedPreferences pref = myContexy.getSharedPreferences("Session Data", MODE_PRIVATE); 
username = pref.getString("User Name", ""); 
password = pref.getString("Password", ""); 
session_id = pref.getInt("Session ID", 0); 
+4

No creo que sea seguro almacenar la contraseña del usuario. No parece legal o una buena práctica. – Swami

+1

Estoy totalmente de acuerdo. No es seguro. –

1

ver este diagrama para una explicación del ciclo de vida de la actividad: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

Ignorar los métodos apropiados en su actividad para no perder de vista cuando se pierde/recupera el foco.

+0

Según su respuesta, la aplicación solo será visible o invisible en función de su ciclo de vida de actividad. Pero la pregunta es cómo mantener el tiempo de espera de la sesión, es decir, si la sesión expira, se borrarán todas las actividades de la pila y se navegará por el usuario para iniciar sesión en la pantalla. – Shrikant

2

SharedPreferences es sin duda el camino a seguir, pero para entrar en más detalles para el tiempo de espera:

  • Guardar la fecha y hora actual en onPause() (->SharedPreferences)
  • Luego, en onResume() lo comparan, para comprobar si hay un tiempo de espera

Si no acaba de tiempo de espera de continuar, de lo contrario demostrar que agradable pantalla, simplemente cierre la sesión, autodestruya el dispositivo, o lo que quiera hacer en ese caso :-)

También puede considerar la implementación de algún tipo de clase de administrador de sesiones, para manejarlo en un nivel superior: Nice example/tutorial from android hive

+1

Explicación muy clara, +100 para autodestrucción/Misión Referencia imposible – MandisaW

0

Si desea mantener la sesión de inicio de sesión de usuario, en lugar de tener la preferencia en todas las actividades, podemos tener el controlador en su lugar para hacerlo.

  1. Crear Handler después de que el usuario logsin
  2. Conjunto sendMessageAtTime (Mensaje, largo), es mucho valor en milisegundos. Esto llamará a la función de cierre de sesión que se definió.
Cuestiones relacionadas