我正在使用AbstractThreadedSyncAdapter將Android手機中的某些數據與服務器同步。當用戶使用手機的應用程序登錄時,我會執行第一次同步,以便用戶在開始使用我的應用程序之前將手機中的所有數據準備好。我用eclipse的模擬器測試了它,它工作正常,但是當我在手機上測試它時,onPerformSync函數花費的時間太長(比如一分鐘或更多)。AbstractThreadedSyncAdapter-> onPerformSync需要太多時間才能調用
這是我在認證活動中使用的代碼:
Bundle params = new Bundle();
params.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, false);
params.putBoolean(ContentResolver.SYNC_EXTRAS_DO_NOT_RETRY, false);
params.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, false);
ContentResolver.addPeriodicSync(account, "com.pfc.authority", params, 30);
ContentResolver.setSyncAutomatically(account, "com.pfc.authority", true);
ContentResolver.requestSync(account,"com.pfc.authority",params);
我AbstractThreadedSyncAdapter的構造函數被調用非常快,但後來我的申請仍然在等待同步是完整的,就像我說的onPerformSync函數需要花費太多時間才能啓動,我不知道爲什麼我的電話需要很長的時間來調用它。
這是日誌(爲我的應用程序過濾)。我把Log.d在構造和功能onPerformSyn:
11:47:49 SweetSyncAdapter: constructor
11:48:01 SweetSyncAdapter: constructor
11:48:36 SweetSyncAdapter: onPerformSync
我看了完整的日誌(不過濾的話),並在執行我的應用程序沒有任何錯誤或警告,但我看到,那就是另一syncrhonization繼續(音樂,日曆等)。這可能是問題嗎?
我測試了兩個不同的ROM(2.3.6 JVU和現在的ICS),它是一樣的。有人知道爲什麼會發生這種情況嗎?
PD:現在我看到了與註銷相同的情況(我在用戶註銷時執行同步),並且電話已經等待調用onPerformSync 5分鐘)。