问题标签 [android-backup-service]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1908 浏览

android - 使用谷歌驱动器备份应用程序数据的最佳方法?

所以我有一个使用 sqlite 编写的应用程序(数据文件夹中有一个数据库)和大约 12-50MB 的服务器和用户生成的内容。我需要自动为用户备份,这样当他们移动设备/获取新设备时,他们的所有更改和内容都会自动与他们一起出现。现在,如果它使所有当前设备保持同步,那将是额外的好处,但不是必需的。

做这个的最好方式是什么?

我看过备份代理,但这似乎只在某些设备上得到半支持,看起来如果你要从说一个 verizon 设备到一个说 sprint 设备,你就会失去一切(但我可能会误解如何有用)。

我也一直在通过播放服务查看谷歌驱动器,但尽管文档听起来像是我可以访问 appFolder 并在那里移动/存储所有内容,但实际上我似乎找不到一种简单的方法来做这个。我真的必须遍历每个文件手动上传吗?如果这是最好的解决方案,我可以这样做,但我认为在我投入 12-15 小时的工作之前,最好在这里问一下这是否是我最好的解决方案。

感谢您的任何意见!

TL;博士

什么是最简单的云备份解决方案,它不依赖于网络并且不需要任何最终用户的谷歌帐户?

0 投票
1 回答
711 浏览

android - BackupAgentHelper 因大量文件而崩溃

我有一个应用程序,其中包含需要备份的用户生成的大量文件。所有内容都存储在 db、preferences 或 4 个文件夹中的 1 个中。我编写了一个简单的辅助函数来FileBackupHelpers为每个文件夹中的文件生成所有文件。但是,似乎在我onCreate()运行框架代码之后FileBackupHelper,要解析的路径数量令人窒息,并使我的应用程序崩溃。

这是我的备份代理的代码:

这是日志输出:

提前感谢您提供的任何帮助!如果您需要任何其他信息,请告诉我。

0 投票
2 回答
299 浏览

android - 备份 api - 存储限制?

安卓备份api可以用来备份照片、视频等大文件吗?如果是这样,可以存储在云中的数据量是否有限制?

0 投票
3 回答
8506 浏览

android - 默认共享首选项使用的文件名是什么?

Android 备份服务需要一个文件名来备份共享首选项:

如果在创建首选项期间给出了文件名,那么使用什么很清楚,例如

但我使用默认的共享首选项:

我应该将什么作为PREFS价值传递给SharedPreferencesBackupHelper

0 投票
1 回答
176 浏览

android - 如何检查是否支持 Android 备份服务?

根据文档

数据备份不保证在所有 Android 设备上都可用。

如果支持或不支持,我如何签入我的代码?我试图检查我自己的设备上发生了什么,但调用dataChanged除了日志消息外什么也没说Backup pass but e=true p=false(消息的解释在这里)。同样的情况也发生在adb shell bmgr backup my.package.name. 如果不支持,我想通知我的应用程序用户。

0 投票
1 回答
452 浏览

android - 在没有备份请求的情况下,Android 是否会自动进行数据备份?

我正在编写我的第一个使用本地 Sqlite 数据库的 Android 应用程序。我想在谷歌云上实现数据库备份,以便在最终用户重新安装应用程序时,Android 可以恢复数据库。

据我了解。每当数据更改时,开发人员需要调用“ BackupManager.dataChanged() ”来请求备份。

我的问题是:如果开发人员在数据更改时不调用“BackupManager.dataChanged()”会发生什么?即使开发人员没有请求备份,Android 是否会自动/定期进行备份?

谢谢!

0 投票
1 回答
92 浏览

windows-7 - 将 Android、Windows 7、Windows 8.1 和 Ubuntuu 文件夹备份到同一台服务器

我知道这个问题对于 stackoverflow 来说并不典型,但也许你们中的一些人愿意帮助我管理我的备份策略。我想从我的 android 设备、windows 8.1 平板电脑、windows 7 笔记本和工作场所的 ubuntu 上传某些文件夹。对我来说,最好的策略如下:

android文件夹应备份条件:
我插入手机充电2小时后

我的 Windows 8.1 平板电脑的情况相同:插入充电 2 小时后备份文件夹

我的 Windows 7 笔记本应该备份:每次重启后

ubuntu的相同条件:每次重启后备份

我感谢每一个让我进一步管理这个的想法,特别是对于可以在 Windows 和 ubuntuu 上帮助我的应用程序。谷歌还没有帮助我很多。向我糟糕的德语英语致以最诚挚的问候和抱歉

0 投票
2 回答
278 浏览

android - 如果用户重新安装或切换设备(Android),如何正确备份数据库

我的应用程序跟踪学校成绩、计算平均成绩等,并将所有这些存储在 SQLite 数据库中。如果用户必须重新安装或获得新手机,我希望能够恢复他们的数据。

看起来大多数开发人员通过备份到 SD 卡或通过 Google 使用Android 备份服务来执行此操作。我不确定哪种方法更好。我想恢复简单但可靠。我欢迎对此发表任何评论。

我试图理解的一件事是为什么谷歌说要扩展BackupAgent而不是BackupAgentHelper使用数据库。

如果您有一个 SQLite 数据库要在用户重新安装您的应用程序时恢复,您需要构建一个自定义 BackupAgent,它在备份操作期间读取适当的数据,然后创建您的表并在恢复操作期间插入数据。

为什么我不能将数据库备份为文件然后恢复文件?SQLiteOpenHelper如果数据库版本不同,我的班级已经处理升级。我想我可以在降级时中止。

0 投票
1 回答
522 浏览

android - 关于使用带有 SQLite 数据库的 Android 备份服务的问题

我的应用程序将所有用户数据和首选项存储在 SQLite 数据库中,如果用户获得新手机、重新安装或恢复出厂设置,我希望保留这些数据和首选项。我已经阅读了Android 的 Data Backup Guide和他们的Android Backup Service,但在开始之前还有一些问题。

  1. 数据是否在安装期间或在我的应用程序首次启动时恢复?即,在调用我的主要活动的代码之前,该文件是否存在?
  2. 如果我的 SQLiteOpenHelper 类已经处理了升级,我还需要做些什么来处理旧数据库的恢复吗?如果数据库在我的应用程序启动之前存在,我认为不会。
  3. 备份时是否会因为 BackupManager 需要时间而面临并发问题?如果用户输入新数据并且我调用dataChanged(),然后在 BackupManager 调用之前再次发生同样的情况onBackup(),这些数据更改将如何处理?BackupManager 会简单地备份数据库的最新版本(应该包括这两个更改)吗?
  4. 尝试备份/恢复 SQLite 数据库会遇到什么问题?我见过开发人员说,一台设备上的数据库可能与另一台设备上的数据库不兼容。我想简单地使用 备份数据库FileBackupHelper,因为它看起来很简单。至少一位开发人员似乎通过禁用预写日志至少解决了一些兼容性问题。如果我采用这种方法,我期望的失败率是多少?如果非常高,我可能会考虑在此过程中转换为 CSV 文件并返回。
  5. 如果恢复失败,我可以捕捉到它,通知用户,并将麻烦数据的副本保存到存储中吗? 用于故障排除和通知用户。
  6. 备份操作“不是线程安全的”。明确如何处理。 安卓说,

为确保您的备份代理不会在您的活动的同时读取或写入您的文件,您必须在每次执行读取或写入时使用同步语句。

  • 这是否意味着我必须将每次对数据库的读/写都放在一个synchronized语句中?即,我必须将其添加到我的活动从数据库加载的每个地方或向其中写入信息?那是很多地方。
  • 或者这是否意味着只有备份代码必须使用synchronized

谢谢您的帮助。我只想正确地做到这一点,并让我的用户在今年圣诞节获得新手机时感到高兴!

0 投票
2 回答
688 浏览

android - 为什么我的 BackupAgentHelper 的 onBackup() 方法没有被调用?

我已经阅读了文档和其他问题,但我想我遗漏了一些东西。我的 BackupAgentonCreate被调用,但不是它onBackup,即使我调用adb bmgr backup <package>然后adb shell bmgr run从命令行调用也是如此。我错过了方程式的哪一部分?

MyBackupAgent 类:

在我的清单中:

几个小时前,我才在 Android 备份服务中注册了我的应用程序,但它并没有说我必须等待。我错过了什么?