Faça seus usuários felizes, (por favor) use o BackupManager

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.

2 thoughts on “Faça seus usuários felizes, (por favor) use o BackupManager

  1. 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?

Leave a comment