Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用和不使用SyncAdapter的应用程序的自动更新_Android_Android Service_Updates_Android Alarms_Android Syncadapter - Fatal编程技术网

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

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

  • 一般数据
  • 与用户相关的数据
如果用户未登录,则仅下载和显示一般数据;如果用户登录,则也会处理其数据

我需要定期从Web服务下载这些数据,从设备的启动开始(
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。