Android 使用和不使用SyncAdapter的应用程序的自动更新
我有一个非常常见的问题,但无法找到合适的解决方案/模式。我的应用程序有两种需要自动更新的数据:Android 使用和不使用SyncAdapter的应用程序的自动更新,android,android-service,updates,android-alarms,android-syncadapter,Android,Android Service,Updates,Android Alarms,Android Syncadapter,我有一个非常常见的问题,但无法找到合适的解决方案/模式。我的应用程序有两种需要自动更新的数据: 一般数据 与用户相关的数据 如果用户未登录,则仅下载和显示一般数据;如果用户登录,则也会处理其数据 我需要定期从Web服务下载这些数据,从设备的启动开始(android.intent.action.boot_COMPLETED触发后)。 由于我的应用程序可以移动到SD,我还需要注册android.intent.action.EXTERNAL\u APPLICATIONS\u AVAILABLEac
- 一般数据
- 与用户相关的数据
android.intent.action.boot_COMPLETED
触发后)。
由于我的应用程序可以移动到SD,我还需要注册android.intent.action.EXTERNAL\u APPLICATIONS\u AVAILABLE
action
第1期:从API 11级(蜂窝)开始。我还不太明白这一点,这是否意味着如果我的应用程序刚刚安装且从未打开过,它就无法侦听操作(因此,如果我们将更新计算在内,只能侦听一次)?或者这是否意味着,每次系统重新启动后,仅当应用程序启动时才会触发该操作
问题2:如果应用程序已移动到SD,SyncAdapter
s将无法运行,因此我必须依靠常规的BroadcastReceiver
-服务-报警-挂起策略。但是如何理解系统是否不会启动SyncAdapter
?(我已经由AccountManager
处理Account
)
你知道有哪家图书馆负责这一切吗?这似乎很奇怪,这不是一个常见的问题吗?Re:问题1,据我所知,在用户第一次明确运行应用程序之前,应用程序不是“活动的”。除非用户在Android的应用程序管理设置中使用强制停止按钮明确停止,否则它将一直处于“活动”状态,直到几天结束。然后,他必须手动重新运行应用程序才能接收广播和其他内容。此行为得到确认:在首次安装并打开应用程序后,您可以重新启动,并且您仍将收到android.intent.action.BOOT\u已完成
。我还没有想出如何解决问题2。