使用和不使用SyncAdapter的应用程序的自动更新

时间:2013-03-14 13:53:45

标签: android android-service updates android-alarms android-syncadapter

我有一个非常常见的问题,但无法找到合适的解决方案/模式来解决它。我的应用程序有两种需要自动更新的数据:

  • 一般数据
  • 用户相关数据

如果用户未登录,则只下载并显示常规数据,如果用户已登录,则也会处理他/她的数据。

我需要定期从Web服务下载这些数据,从设备的启动开始(触发操作android.intent.action.BOOT_COMPLETED后)。 由于我的应用程序可以移动到SD,我还需要注册android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE操作。

问题1 :从API级别11(Honeycomb)all actions aren't sent to applications in a stopped state开始。我还没有完全理解这一点,这是否意味着如果我的应用程序刚刚安装并且从未打开过,那么我的应用程序就无法监听操作(如果我们计算更新时只有一次)?或者这是否意味着在每次系统重启后,只有在应用程序启动时才会触发操作?

问题2 :如果应用程序已移至SD,则SyncAdapter将无法运行,因此我必须依赖常规BroadcastReceiver - Service - Alarm - PendingIntent策略。但是,我怎么能理解系统不会启动SyncAdapter? (我已经在Account

处理了AccountManager

你知道有哪个图书馆负责这一切吗?这似乎很奇怪,这不是一个常见的问题吗?

1 个答案:

答案 0 :(得分:1)

Re:问题1 ,据我所知,应用不是"还活着#34;直到用户第一次显式运行它。然后它仍然会活着#34;直到日期结束,除非用户使用Android应用程序管理设置中的强制停止按钮明确停止它。然后他将不得不手动重新运行应用程序,以便能够接收广播和内容。