2012-04-18 17 views
21

Estoy creando inicio de sesión en mi aplicación. El usuario escribe su información y la envío al servicio web para verificar y obtener su ID. Ahora tengo que guardarlo en alguna parte de mi aplicación para poder verificar si tenía login.Guardar información del usuario en la configuración de la aplicación

¿Dónde se debe guardar esta información? Sé que cada aplicación tiene su configuración, ¿así que debería haber esta información? Tal vez alguien podría darme más información sobre qué y cómo está haciendo esto.

Gracias.

me encontré con este post: What is the most appropriate way to store user settings in Android application

Creo que mi pregunta era duplicado. Pero sería bueno si tienes algo para compartir más.

Respuesta

54

En primer lugar info guardar como usuario uname & contraseña en SharedPreferences con este código.

SharedPreferences settings = getSharedPreferences("UserInfo", 0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putString("Username",txtUname.getText().toString()); 
editor.putString("Password",txtPWD.getText().toString()); 
editor.commit(); 

y luego SharedPreferences desde abajo código

SharedPreferences settings = getSharedPreferences("UserInfo", 0); 
txtUname.setText(settings.getString("Username", "").toString()); 
txtPWD.setText(settings.getString("Password", "").toString()); 
+1

Para cualquier pregunta acerca compatiility, esto es apoyado en todas las versiones de API actuales (agregado en API V1). La documentación de SharedPreferences se puede encontrar aquí: http://developer.android.com/reference/android/content/SharedPreferences.html – JakeJ

+10

Para cualquiera que esté interesado en la seguridad, no almacene su contraseña de usuario en SharedPreferences. –

+5

NUNCA debe guardar contraseñas simples en aplicaciones o bases de datos. En lugar de guardar texto sin formato, puedes usar hash. Cuando necesite validar la contraseña del usuario dada, puede copiarla de la misma manera y comparar los valores hash. De esta manera es mucho mejor que el texto sin formato. – RoDo

7

Puede usar SharedPreferences para esto.

Algunos códigos de referencias (taken from documentation):

public class Calc extends Activity { 
    public static final String PREFS_NAME = "MyPrefsFile"; 

    @Override 
    protected void onCreate(Bundle state){ 
     super.onCreate(state); 
     . . . 

     // Restore preferences 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     boolean silent = settings.getBoolean("silentMode", false); 
     setSilent(silent); 
    } 

    @Override 
    protected void onStop(){ 
     super.onStop(); 

     // We need an Editor object to make preference changes. 
     // All objects are from android.context.Context 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("silentMode", mSilentMode); 

     // Commit the edits! 
     editor.commit(); 
    } 
} 
22

respuesta es Uso clase de aplicaciones o preferencias compartidas

Asumo que puede buscar fácilmente para el Ejemplo de Application Class, SharedPreferences y SQLite Database

Así que estoy mencionando ¿Por dónde utilizar las opciones ¿Qué

Application Class

Cuando llegué a nada (var, matriz, lista, objetos) para almacenar apenas solamente para la vida útil de la Application..and A medida que se estrecha (para Android Forzar cierre) Uso la clase de aplicación.

SharedPreferences

yo uso esto cuando tengo algo de información como identificador, símbolo, nombre de usuario, banderas y quiero almacenar que mientras la aplicación de descanso en el Device..and necesita usar los datos cada vez me inicie la aplicación ..

SQLite Database

Cuando hay un conjunto de datos a granel en formato de registro (fila - columna) lo utilicé para almacenar la base de datos por lo que se convierte en fácil de almacenar, retrive y manipular.

0

si el usuario borrar los datos de la aplicación de la configuración -> gestor de aplicaciones -> su aplicación -> datos claros

continuación, todos los datos guardados en las preferencias compartidas conseguirá eliminado

+1

¿De verdad? Wow gracias por señalar eso. Me pregunto si esto también es cierto para las bases de datos SQLite – MobileMon

+2

Sí, se confirma, las bases de datos también se borran. El cuadro de diálogo de confirmación me dice que todos los "Archivos, configuraciones, cuentas, bases de datos, etc." se eliminarán de forma permanente. Aprenda algo nuevo cada día... – MobileMon

Cuestiones relacionadas