0

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

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

如果用户未登录,则仅下载并显示一般数据,如果用户已登录,则也处理他/她的数据。

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

问题 1:从 API 级别 11 (Honeycomb) 开始,所有操作都不会发送到处于停止状态的应用程序。我不太明白这一点,这是否意味着如果我的应用程序刚刚安装并且从未打开过(所以如果我们计算更新只有一次),它就无法监听操作?或者这是否意味着,每次系统重新启动后,只有在应用程序启动时才会触发该操作?

问题2:如果应用程序已经移到SD,SyncAdapters将无法运行,所以我必须依靠一般的BroadcastReceiver- Service- Alarm-PendingIntent策略。但是我怎么知道SyncAdapter系统不会启动呢?(我已经处理Account了 s AccountManager

你知道有什么图书馆可以处理所有这些吗?这似乎很奇怪,这不是一个普遍的问题吗?

4

1 回答 1

1

回复:问题 1,据我所知,一个应用程序在用户第一次明确运行它之前是不“活跃的”。除非用户使用Android 应用程序管理设置中的强制停止按钮明确停止它,否则它仍然会“活着”直到日子结束。然后,他必须手动重新运行该应用程序才能接收广播和内容。

于 2013-03-14T14:03:27.583 回答