2010-05-11 18 views
8

Espero que entiendas mi pregunta con mi inglés básico ...¿Alguna solución para guardar un intento en la configuración?

En mi aplicación, permito al usuario tener un botón que ejecute la aplicación de su elección. No tengo problemas para hacer una lista de todas las aplicaciones instaladas, obtener el Intento y ejecutar la aplicación elegida.

Pero me gustaría guardar la intención correspondiente en los ajustes para la próxima vez que el usuario utilice mi solicitud, pero sólo permiten ajustes que ahorre tipo de datos básico (entero, booleano, cuerdas, etc.)

Entonces, mi pregunta es cómo guardar un intento de una manera inteligente.

Espero que pueda ayudarme a encontrar una solución.

+0

Pruebe esta solución basada en Gson: http://stackoverflow.com/a/34580505/2267723 –

Respuesta

23

que puedes usar para almacenar el myIntent.toURI()Intent, y utilizar Intent.getIntent(String uri) para restaurar el Intent.

public void saveIntent(Intent intent) { 
    mSharedPrefs.edit().putString(SOME_KEY, intent.toURI()).commit(); 
} 

public Intent restoreIntent() { 
    String uri = mSharedPrefs.getString(SOME_KEY, *mSomeDefaultUri*); 
    return Intent.getIntent(uri); 
} 
+1

Gran! Me encanta esta respuesta! –

+2

Solo para información, _toUri() _ ahora está en desuso. Use ** toUri (int flags) ** en su lugar. – JJ86

2

En lugar de guardar el Intent, puede guardar el String que es necesario para construir el Intent.

Ejemplo:

Intent intent = new Intent("com.android.notepad.action.EDIT_TITLE"); 

Ahora sólo almacenar un String contiene com.android.notepad.action.EDIT_TITLE

Cuestiones relacionadas