我有一个非常常见的问题,但无法找到合适的解决方案/模式来解决它。我的应用程序有两种需要自动更新的数据:
- 一般数据
- 用户相关数据
如果用户未登录,则仅下载并显示一般数据,如果用户已登录,则也处理他/她的数据。
我需要定期从 Web 服务下载这些数据,从设备启动开始(在android.intent.action.BOOT_COMPLETED
触发操作之后)。由于我的应用程序可以移动到 SD,因此我还需要注册该android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE
操作。
问题 1:从 API 级别 11 (Honeycomb) 开始,所有操作都不会发送到处于停止状态的应用程序。我不太明白这一点,这是否意味着如果我的应用程序刚刚安装并且从未打开过(所以如果我们计算更新只有一次),它就无法监听操作?或者这是否意味着,每次系统重新启动后,只有在应用程序启动时才会触发该操作?
问题2:如果应用程序已经移到SD,SyncAdapter
s将无法运行,所以我必须依靠一般的BroadcastReceiver
- Service
- Alarm
-PendingIntent
策略。但是我怎么知道SyncAdapter
系统不会启动呢?(我已经处理Account
了 s AccountManager
)
你知道有什么图书馆可以处理所有这些吗?这似乎很奇怪,这不是一个普遍的问题吗?