una seguridad por podido iniciar idse formada ejecucion desbloquear cómo configuracion con certificado bloqueado bloqueada aplicación aplicacion java android database application-settings

java - seguridad - Guarda poca información como configuración en Android(como la primera vez que se ejecuta la aplicación)



no se ha podido iniciar la aplicacion java (6)

Quiero guardar una marca para reconocer que mi aplicación se ejecuta por primera vez o no. Para este trabajo simple no quiero crear base de datos ...

¿Hay una opción simple para hacer esto? Quiero guardar y leer pequeñas piezas de información solamente.



Le sugiero que vaya para el almacenamiento persistente SharedPreference . Es muy fácil y rápido de almacenamiento / recuperación para una pequeña cantidad de información.

Ver el código para obtener el valor de SharedPreference

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

y para almacenar valor en SharedPreference

// 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);


Puedes hacer una clase por ejemplo: (como un objeto por ejemplo)

import android.content.Context; import android.content.SharedPreferences; public class SettingsMain { Context context; SharedPreferences preferences; SharedPreferences.Editor editor; private static final String PREFER_NAME = "settingsMain"; public static final String KEY_VIBRATE = "switchVibrate"; public SettingsMain(Context context) { this.context = context; setPreferences(); } private void setPreferences(){ preferences = context.getSharedPreferences(PREFER_NAME, context.MODE_PRIVATE); editor = preferences.edit(); } public void cleanPreferences(){ editor.clear(); editor.commit(); } public void setStatusVibrate(Boolean status){ editor.putBoolean(KEY_VIBRATE, status); editor.commit(); } public Boolean getstatusVibrate(){ return preferences.getBoolean(KEY_VIBRATE, true); } }

En su llamada de actividad:

public class Home extends AppCompatActivity { private SettingsMain settings; private SwitchCompat switchVibrate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.master); setResources(); getSettings(); } private void setResources(){ switchVibrate = (SwitchCompat) findViewById(R.id.master_main_body_vibrate_switch); switchVibrate.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { settings.setStatusVibrate(isChecked); } }); } private void getSettings(){ settings = new SettingsMain(this); switchVibrate.setChecked(settings.getstatusVibrate()); } }


Una forma adecuada de hacerlo es mediante el uso de la clase de Android SharedPreferences que se usa para cosas como esta.

Configuración de almacenamiento

SharedPreferences settings = getSharedPreferences(NAME_OF_PREFERENCES, MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("appPreviouslyStarted", true); editor.apply();

¡No olvides aplicar o tus mutaciones en la configuración no se guardarán!

Puedes crear múltiples configuraciones usando diferentes NAME_OF_PREFERENCES . La configuración se almacena en el dispositivo, por lo que estará disponible después de cerrar la aplicación.

Cuando intenta recuperar NAME_OF_PREFERENCES que aún no se ha creado, crea uno nuevo. Ver más comportamientos como este here .

apply () contra commit ()

Puede usar editor.apply() así como editor.commit() , la única diferencia es que apply () no devuelve un valor boolean si la edición fue exitosa o no. editor.apply () es por lo tanto más rápido y más comúnmente utilizado.

¿Qué es MODE_PRIVATE?

Puedes ver todo sobre los diferentes modos here . Para tu caso, MODE_PRIVATE está bien.

Recuperando ajustes

SharedPreferences settings = getSharedPreferences(NAME_OF_PREFERENCES, MODE_PRIVATE); boolean silent = settings.getBoolean("silentMode", false);

Al recuperar una configuración de un objeto SharedPreferences , siempre debe especificar un valor predeterminado que se devolverá cuando no se encuentre la configuración. En este caso eso es false .


Utilice SharedPreferences .

SharedPreferences preferences = getSharedPreferences("prefName", MODE_PRIVATE); SharedPreferences.Editor edit= preferences.edit(); edit.putBoolean("isFirstRun", false); edit.commit();


Utilice sharedPreference o files para guardar los datos, pero la mejor opción es sharedPreference .

Para recuperar

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean("silentMode", false);

Para ahorrar

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", true); editor.commit();