2014-10-28 60 views
0

Android SyncAdapter没有考虑主线程设置的静态变量值。由于静态变量通过应用程序持续存在,因此预计会跨线程共享。但是SyncAdapter并没有考虑主线程设置的值并采用默认值。帮助我找到解决方案。我需要我的静态值由SyncAdapter使用。SyncAdapter没有考虑主线程设置的静态变量

回答

1

仅当主进程存在时,静态值才会持续存在。 Android可以随时停止您的流程,并且您无法保证SyncAdapter启动时,流程将保持活跃状态​​。所以,你应该使用其他选项为SyncAdapter你的价值观的存储:

  • 当你请求同步与ContentResolver.requestSync()
  • 保存值SharedPreferences与包通过你的价值观和SyncAdapter
  • 阅读
  • 将值保存到Sqlite数据库并从SyncAdapter查询它们。