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