Sesión de inicio de sesión – Actividades

Tengo un inicio de sesión en mi aplicación. Quiero saber la mejor manera de establecer una sesión global o equivalente que pueda referirme de cualquier actividad para que sepa si un usuario está conectado. Además, para que otras actividades puedan obtener el identificador de usuario para realizar transacciones de base de datos.

No quiero usar putExtra () ya que tendré que hacerlo por cada Intent I build en toda la aplicación.

Puede crear una clase de aplicación que se puede utilizar como un titular de estado global.

He aquí un ejemplo de código:

public class SampleApplication extends Application { private static String username; private static String password; @Override public void onCreate() { super.onCreate(); username=""; password=""; } public static String getUsername() { return username; } public static void setUsername(String username) { SampleApplication.username = username; } public static String getPassword() { return password; } public static void setPassword(String password) { SampleApplication.password = password; } } 

Después de declarar métodos estáticos y variables, debe definir su clase de aplicación en su AndroidManifest.xml. Utilice el atributo android:name de la etiqueta de la application para definir el nombre de su clase.

Aquí hay más código de ejemplo:

 <application android:name=".SampleApplication" android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".SampleApp" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

Su clase de aplicación compartirá todos los eventos del ciclo de vida como actividad y se destruirá cuando se cierre la aplicación.

Puede acceder a las variables de su aplicación con getters y setters estáticos de cualquier actividad o servicio:

 SampleApplication.setUsername(""); String currentUserName=SampleApplication.getUsername(); SampleApplication.setPassword(""); String currentPassword=SampleApplication.getPassword(); 

También puede, en lugar de ir a clase singleton, optar por la clase normal de la aplicación

Alternativa al mismo ejemplo:

 public class SampleApplication extends Application { private String username; private String password; @Override public void onCreate() { super.onCreate(); username=""; password=""; } public String getUsername() { return username; } public void setUsername(String username) { SampleApplication.username = username; } public String getPassword() { return password; } public void setPassword(String password) { SampleApplication.password = password; } } 

Puede acceder a ellos con:

 ((SampleApplication)getApplication()).getUsername(); 
  • Disminuir la verbosidad del registro interno de ORMlite o deshabilitarla
  • ¿Cómo puedo administrar la sesión en el inicio / cierre de sesión de Android?
  • Implementar reintento Cuando la lógica
  • Publicar en pared FB Utilizar SDK 3.0
  • Iniciar sesión en appengine desde el cliente android
  • Hacer un login con facebook usando Facebook SDK 3.0
  • El recuento de sesión se multiplica cuando uso Google Analytics Android SDK v4
  • Mantenga la sesión entre loadUrl de Android WebView
  • ¿Cómo puedo salir con AndroidAccountManager?
  • Retrofit sigue olvidando mis cookies :( Android
  • Android: inicia sesión en el sitio web y conserva sesión / cookie mediante DefaultHttpClient
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.