Saltar al contenido
CrossFly es 100% open sourceSíguenos en GitHub
CrossFlyCrossFly
Empezar

Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.

Archivos y “preferencias”

Esta página es honesta sobre una eliminación. Si buscas SharedPreferences/UserDefaults, detente: en CrossFly ese mecanismo no existe.

⚠️ La persistencia ligera fue eliminada

Settings.appSettings, appSecretKey, refresh() y las antiguas “preferencias” ya no existen — y no hay grabación automática al salir. Tú grabas explícitamente, en el momento adecuado.

Qué usar en su lugar

¿Necesitas guardar… Usa
flags, tema, último login (clave→valor) tabla clave/valor en SQLite (guía)
blobs / archivos un archivo en Device.homeFolder

Clave/valor en SQLite (recomendado para configuraciones)

try (SqliteDb db = SqliteDb.open("app.db")) {
   db.exec("CREATE TABLE IF NOT EXISTS kv(k TEXT PRIMARY KEY, v TEXT)");
   db.execute("INSERT OR REPLACE INTO kv(k, v) VALUES(?, ?)", "tema", "escuro");
   String tema = db.queryString("SELECT v FROM kv WHERE k=?", "tema");   // null si ausente
}

Archivo simple en Device.homeFolder

Device.homeFolder es el directorio base de la app (varía según la plataforma):

Plataforma homeFolder
Desktop directorio de trabajo (cwd)
Android almacenamiento privado de la app
iOS carpeta documents
String path = Device.homeFolder + "config.json";

byte[] bytes = Utils.readBytes(path);   // ⚠️ null si el archivo no existe
if (bytes != null) {
   String json = new String(bytes);
   // … parse …
}
// FileHandle (libGDX) para casos que necesitan más control:
FileHandle fh = Utils.loadFile(path);   // null si no se encuentra

Buenas prácticas

  • Graba explícitamente en los puntos adecuados (al guardar una config, al salir de una pantalla) — nada se persiste solo.
  • Prefiere SQLite kv antes que un archivo suelto para configuraciones (transaccional, consultable).
  • Comprueba siempre null de Utils.readBytes/loadFile (el archivo puede no existir).

Errores comunes

  • Buscar Settings.appSettings/SharedPreferences — fue eliminado; no vuelve.
  • Asumir grabación automática al cerrar — no la hay; graba tú mismo.
  • No tratar null al leer un archivo inexistente.

Véase también

¿Te resultó útil esta página?