1
我試圖在Android 6及更低版本中使用Android自動備份功能,但在重新安裝我的應用程序後,將不會恢復任何內容。使用Android自動備份備份應用程序文件
清單:
<application
android:allowBackup="true"
android:backupAgent=".BackupAgent"
android:fullBackupOnly="true"
android:fullBackupContent="true"
android:name="com.App">
<meta-data
android:name="com.google.android.backup.api_key"
android:value="API_KEY"/>
</application>
BackupAgent:
public class BackupAgent extends BackupAgentHelper {
@Override
public void onCreate() {
super.onCreate();
BackupHelper helper = new FileBackupHelper(getApplicationContext(), Realm.getDefaultInstance().getPath());
addHelper("database", helper);
}
}
片段,其使用領域:
public class NewBlockNumber extends Fragment implements Validator.ValidationListener {
private Realm mRealm;
private RealmChangeListener mRealmChangeListener = new RealmChangeListener() {
@Override
public void onChange() {
BackupManager bm = new BackupManager(getContext());
bm.dataChanged();
}
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mRealm = Realm.getDefaultInstance();
mRealm.addChangeListener(mRealmChangeListener);
return null;
}
}
根據此文檔http://developer.android.com/guide/topics/data/backup.html,您需要覆蓋'onBackup'和'onRestore'。 – beeender
@beeender我擴展了'BackupAgentHelper',因此不需要實現這些方法。 – Alireza
'new FileBackupHelper(getApplicationContext(),Realm.getDefaultInstance()。getPath());'我懷疑你可能需要傳遞文件名而不是整個路徑。 – beeender