一些同步问题

时间:2014-05-04 13:21:09

标签: android mysql json sqlite

我正在制作应用程序而且我遇到了一些问题,我想问一下我的解决方案是否合适。

所以基本上我使用Service,我从Intent开始使用MainActivityService中有一个无限循环,其中有一个ThreadSleep(60000)因此它只尝试每60秒更新一次。 Service向我的JSON包装器PHP脚本发出HTTP请求,然后从我的远程MySQL数据库返回数据,然后Service解析数据,之后它与ContentProvider进行通信,使用其bulkInsert()替换而不是插入,以便在需要将新数据存储在本地SQLiteDatabase时替换旧行。我还想知道除了JSON数据之外我还要得到一个有效id的列表,所以它知道删除主db中不再存在的行,我也发送了上次更新的时间,所以我只返回返回的新行而不是整个数据库。关键是要在远程服务器上安装一个主数据库,并将多个设备同步到它。

接下来我需要Activities能够使用使用ContentProvider的加载器从本地数据库查询信息。

现在我想知道更新数据库并同时查询它是否存在问题。 ContentProvider会照顾到吗? 此外,我还需要同步一个图片文件夹,我该怎么做呢? 我应该注意哪些同步问题? 是否有更好的方法来实现我想要的目标?

1 个答案:

答案 0 :(得分:1)

我可以告诉你,Service内的无限循环是一个非常糟糕的主意。尤其是Sleep(60000)。为什么不使用IntentServiceAlarmManagerIntentService会在后台工作线程中自动处理所有Intents,因此您不必处理此问题,AlarmManager基本上只是一个计时器,您可以使用它来调用每60秒服务一次。这对于执行更新来说是一个更好的解决方案。

根据您的其他问题:ContentProvider已经为您处理了很多事情。您不必担心并发请求或类似的事情。我无法真正告诉您有关文件夹同步的更多信息,请尝试更具体。到目前为止,您有哪些具体问题让您担忧?