Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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
Java SyncAdapter未考虑主线程设置的静态变量_Java_Android_Multithreading_Android Syncadapter - Fatal编程技术网

Java SyncAdapter未考虑主线程设置的静态变量

Java SyncAdapter未考虑主线程设置的静态变量,java,android,multithreading,android-syncadapter,Java,Android,Multithreading,Android Syncadapter,Android SyncAdapter不考虑主线程设置的静态变量值。由于静态变量在整个应用程序中持续存在,因此预期它将在多个线程之间共享。但SyncAdapter并没有考虑主线程设置的值,而是采用默认值。帮我找出解决这个问题的办法。我需要SyncAdapter使用我的静态值。静态值仅在主进程存在时保持。Android可以随时停止您的进程,并且不能保证当SyncAdapter启动时,进程将处于活动状态。因此,您应该使用其他选项来存储SyncAdapter的值: 当您请求与ContentResol

Android SyncAdapter不考虑主线程设置的静态变量值。由于静态变量在整个应用程序中持续存在,因此预期它将在多个线程之间共享。但SyncAdapter并没有考虑主线程设置的值,而是采用默认值。帮我找出解决这个问题的办法。我需要SyncAdapter使用我的静态值。

静态值仅在主进程存在时保持。Android可以随时停止您的进程,并且不能保证当SyncAdapter启动时,进程将处于活动状态。因此,您应该使用其他选项来存储SyncAdapter的值:

  • 当您请求与ContentResolver.requestSync()同步时,将值与包一起传递
  • 将值保存到SharedReferences并从SyncAdapter读取它们
  • 将值保存到Sqlite数据库并从SyncAdapter查询它们

我要补充的是,伴随的SyncService通常被定义为位于manifest
android:process
中定义的单独进程中。所以静态变量将不可见。