Acredito que o que todo desenvolvedor quer, é que seus usuários sejam felizes para que continuem usando, ou melhor ainda, continuem comprando seus aplicativos.
Existe algo mais frustrante para um usuário do que perder todos as fases com 3 estrelinhas do seu joguinho preferido.
Ou ter que preencher vários dados após uma nova instalação de uma aplicativo que ele já usa, em seu novo e recém adquirido smartphone de última geração?
O Android prove uma funcionalidade muito simples para se fazer backup de configurações e preferências na Cloud, através do BackupManager.
Usando o BackupManager você pode fazer backup na cloud de suas SharedPreferences ou de arquivos de configuração/informação simples (não use para arquivos binários grandes).
E o melhor de tudo, ele é muito simples de usar:
- Primeiro você precisa registrar uma chave de acesso (API Key) em http://code.google.com/android/backup/signup.html
- Depois precisamos criar uma Classe que estende a BackupAgentHelper:
import android.app.backup.BackupAgentHelper; import android.app.backup.SharedPreferencesBackupHelper; public class MyBackupAgent extends BackupAgentHelper { // O nome dos grupos de SharedPreferences mantidas pela aplicação, // são as mesmas strings que você passa para o // getSharedPreferences(String, int). static final String PREFS_DISPLAY = "displayprefs"; static final String PREFS_SCORES = "highscores"; // Uma string arbitraria usada pelo BackupAgentHelper para // identificar os dados do SharedPreferenceBackupHelper static final String MY_PREFS_BACKUP_KEY = "myprefs"; // Simplesmente aloca um helper e o instala... void onCreate() { SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS_DISPLAY, PREFS_SCORES); addHelper(MY_PREFS_BACKUP_KEY, helper); } }
- No seu AndroidManifest.xml na tag <application> adicione
android:allowBackup="true"
para habilitar o backup e
android:backupAgent="MyBackupAgent"
para informar qual o seu BackupAgent
Ainda na tag application, adicione:<meta-data android:name="com.google.android.backup.api_key" android:value="SUA API KEY" />
- Cada fez que alterar algum dado nos grupos de SharedPreferences que você está querendo fazer backup (no nosso exemplo “displayprefs” e “highscores”) você precisa chamar dataChanged() em uma instancia de BackupManager:
BackupManager backupManager = new BackupManager(context); ... backupManager.dataChanged();
Pronto, isso é tudo o que você precisa para fazer o backup e recuperação das configurações na cloud e principalmente manter os seus usuários felizes.
Código disponível em BackupManagerTest
Até a próxima.
Lúcio, e se eu quiser fazer o backup de uma base de dados de mais de 1.000 registros, por exemplo? O que é o mais indicado?
Usar alguma API de sync de dados, tipo Google Drive, Dropbox, etc.