首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android备份服务-什么时候多久备份一次?

问Android备份服务-什么时候多久备份一次?
EN

Stack Overflow用户
提问于 2013-02-24 05:34:53
回答 2查看 1.9K关注 0票数 15

我想用Android backup service备份我的应用程序的数据,但是我担心网络的使用。我有大约500 of的数据,需要上传到每个备份操作。不是很多,但是如果每天执行10次备份,它可以轻松地达到5MB。

我的问题是,Android决定何时以及多久一次执行备份?在我调用dataChanged()之后,文档只提到了“在将来的适当时机”。它不能解释什么条件构成了“适当的时机”。

您可以通过调用dataChanged()在任何时候请求备份操作。此方法通知备份管理器,您希望使用备份代理备份数据。然后,备份管理器将在将来适当的时候调用备份代理的onBackup()方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-03 04:48:25

你的问题分为两部分:

  1. 什么时候
  2. 多久一次

让我们从#2,多久一次开始。我认为这些文档足以回答这个问题。当应用程序调用dataChanged()方法时,就有可能进行备份。因此,谨慎的做法是限制对此方法的调用频率。如何处理这件事由你自己决定。您可能需要考虑的一种方法是,只将其称为应用程序中的重要/重要数据更改。也就是说,不要为用户首选项的更改(例如背景色)调用它,而是对任何类型的事务性数据调用它。

至于#1,when:这很难准确回答。这方面的文档是不明确的。这让Android可以自由地改变这个算法,而不会违反任何开发者的期望。我确实认为这样做是合理的:备份可能会很快发生,可能在最短的时间内是合适的。如果“很快”发生,那就不是一种很有用的服务了,是吗?Android可能等待一些简单的条件(只是猜测,但这可能是可用的线程,没有其他网络活动的可用网络连接)。请注意,文档声明“它将使用设备上启用的任何传输进行备份”。这听起来好像是为了让备份尽早发生。

票数 13
EN

Stack Overflow用户

发布于 2016-02-11 23:06:23

我进一步研究了Android备份管理器服务,并发现了以下内容:

  1. 根据http://developer.android.com/guide/topics/data/backup.html中的“请求备份部分”,如果连续多次调用dataChanged(),在备份管理器从代理请求备份之前,代理仍然只接收到对onBackup()的一个调用。

我的解释是,我们的应用程序中的每个DataChanged()调用都通过传输通知备份管理器服务。备份管理器服务将只对我们的应用程序的备份代理的onBackup()执行一次调用,即使在备份管理器服务需要响应之前,DataChanged被多次调用(参见下面关于备份管理器响应频率的第2项)。

  1. 根据这个测试程序(我刚才还运行了备份频率测试):manager/备份管理器服务每小时响应一次(我在测试中也证明了这一点),只要在上次数据备份之后的一个小时内至少调用一个DataChanged()。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15049004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档