Android uygulamasında SharedPreferences'ı nasıl yedekleyeceğim konusunda ödevlerimi yapıyorum, özellikle de geriye dönük uyumluluğu korumak için yansıma. En azından deniyorum. Maalesef, kodumun hiçbiri aslında bir yedek oluşturuyor! Bu, here açıklandığı gibi emülatörde adb bmgr komutlarını zorlamayı içerir. Bu yüzden toplumun belki de bana yardımcı olabileceğini ve bu süreçte daha iyi belgelere sahip olup olmadığını merak ediyorum.Android SharedPreferences Yedekleme Çalışmıyor
İşte kodum. Bunu diğerleri için olabildiğince genel olarak tutmak için, Andy numaralı uygulamayı com.example.andy paket adıyla arayacağım.
Android Manifest (alıntı)
<application
...
android:backupAgent="com.example.andy.backupHelper"
android:restoreAnyVersion="true">
...
<meta-data
android:name="com.google.android.backup.api_key"
android:value="GIVEN KEY GOES HERE" />
...
backupHelper.java
Not: /data/data/com.example.andy/shared_prefs/com.example.andy_preferences.xml
package com.example.andy;
import android.app.backup.BackupAgentHelper;
import android.app.backup.SharedPreferencesBackupHelper;
public class BlinkyBackup extends BackupAgentHelper {
static final String PREFS_FILE = "andy_preferences";
static final String BACKUP_KEY = "AndyPreferencesBackup";
public void onCreate() {
SharedPreferencesBackupHelper backupHelper = new SharedPreferencesBackupHelper(this, PREFS_FILE);
addHelper(BACKUP_KEY, backupHelper);
}
}
BackupAgentWrapper
Son olarak, çalışma zamanı sırasında bir yedekleme başlatma komutları. Benim uygulamada, bu kod benim uygulama için bir ana sınıftan çalıştırılır (ana aktivite değil), geçirilen bu bir içerik oluşturma ve sonra mContext özel değişkeninde saklanır. Ana arama faaliyeti (uygulamanızda başlar birincisi) olarak
$ adb shell bmgr enable true
$ adb shell bmgr backup com.example.andy
$ adb shell bmgr run