2010-11-18 8 views
1

Im Versuch, die Unterstützung aus meiner Anwendung Daten in die Google-Server zu tun ..Datensicherung in Google-Servern mit Android Backup Service in Android

Dafür tut ich ein BackupAgent in meinem Code implementiert habe und ich eingeschlossen dies im Android Manifest-Datei und „Meta-Daten“

(GOT nach meiner Anwendung Paket mit den Android Backup Service registriert) Wenn ich die Anwendung ausführen, um die Sicherung zu tun dies ist nicht die Sicherung durchgeführt .. im mit Nexus eines Gerät (verbunden mit WIFI auch).

Könnte jemand bitte mich wissen lassen, warum es nicht die Methode meines BackupAgent onBackup() aufruft?

Fehle ich etwas, in die Android-Manifest-Datei oder einige, wo in dem Programm enthalten?


Die unten ist mein Manifest-Datei ..

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="org.simpledatabackup" 
     android:versionCode="1" 
     android:versionName="1.0"> 

    <application android:icon="@drawable/icon" android:label="@string/app_name" 
       android:backupAgent="MyBackupAgent" 
       android:debuggable="true"> 


     <activity android:name=".SimpleDatabackup" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <meta-data android:name="com.google.android.backup.api_key" 
        android:value="AEdPqrEAAAAIZn2ysSLR5wNbcq1uaoWQO0HuipMetQENVTsilw" /> 

    </application> 

    <uses-sdk android:minSdkVersion="8" /> 

</manifest> 

und die Quelldatei

public class SimpleDatabackup extends Activity { 

    private SharedPreferences myPrefs ;   // Shared Preferences 

    BackupManager mBackupManager; 


    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     myPrefs = this.getSharedPreferences("shared_prefs", MODE_WORLD_READABLE); 

     SharedPreferences.Editor edit = myPrefs.edit(); 
     edit.putString("firstname", "uday") ; 
     edit.putString("lastname", "kiran") ; 
     edit.commit() ; 

     mBackupManager.dataChanged(); 



    } 
} 

My Backup Agent soetwas wie das ist: Ich habe nicht die Funktionalität innerhalb umgesetzt haben ist onBackup() und onRestore(). Einmal, wenn es aufgerufen wird, ich werde implementieren, was immer ich will ..

public class MyBackupAgent extends BackupAgent { 

@Override 
public void onCreate() { 

    System.out.println("In MyBackuAgent's onCreate() method"); 

} 

@Override 
public void onBackup(ParcelFileDescriptor arg0, BackupDataOutput arg1, 
     ParcelFileDescriptor arg2) throws IOException { 

    System.out.println("In MyBackuAgent's onBackup()"); 
    // TODO Auto-generated method stub 

} 

@Override 
public void onRestore(BackupDataInput data, int appVersionCode, 
     ParcelFileDescriptor newState) throws IOException { 

} 

} 
+0

Können Sie Snippets von Ihrem backupAgent anzeigen und was Sie Ihrem Manifest hinzugefügt haben? Wie haben Sie festgestellt, dass onBackup nicht angerufen wird? –

+0

Danke für die Antwort Mayara .. – uday

Antwort

4

Bei der Anwendung Tag im Manifest enthalten

android:allowBackup="true" 
android:restoreAnyVersion="true" 
android:backupAgent="<package>.MyBackupAgent" 

Bitte folgen Sie dem "Testing your BackupAgent" Abschnitt das Backup sofort zum Testen aufzurufen.

BackupManagerService plant die Sicherung regelmäßig in Stundenintervallen nach dem datengeänderten Aufruf des Backupmanagers. [grepcode]

+0

+1 für den Quellcode auszufischen und die einstündige Verzögerung zu bemerken – skaffman

Verwandte Themen