문제

특정 데이터에 대한 빠른 확인을 위해 몇 초마다 실행되어야하는 SyncAdapter를 작성하려고합니다. 다음 코드를 사용하여 SyncAdapter를 실행합니다

ContentResolver.setIsSyncable(account, CONTENT_AUTHORITY, 1);           
ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true);
.

및 동기화는 트리거링 된 CORCECLTY입니다. 그러나 나는 그것이 10 분마다 한 번만 전화를 걸 었음을 알아 차렸다. Android 교육을 기반으로 http://developer.android.com/training. /sync-adapters/running-sync-adapter.html 말 :

네트워크 연결을 사용할 수있는 경우 안드로이드 시스템 장치의 TCP / IP를 유지하려면 몇 초마다 메시지를 보냅니다. 연결 열기. 이 메시지는 또한 각각의 ContentResolver로 이동합니다 앱. SetSyncAutomally ()를 호출하면 동기화 어댑터를 실행할 수 있습니다. ContentResolver가 메시지를받을 때마다.

네트워크 연결을 사용할 수 있지만 WiFi가 아닌 3G 연결이 아닙니다. 오랫동안 기다리는 이유입니까? 10 초마다 내 어댑터를 어떻게 실행할 수 있습니까? 나는 정기적 인 동기화를 사용하여 이미 시도했다

ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(), 10);
.

하지만 여전히 10 분마다 실행 중입니다.

도움이 되었습니까?

해결책

Android SyncManager의 희생자입니다.이 시나리오를 고려하십시오. 응용 프로그램에 대해 10 분마다 동기화를 추가하지만 휴대 전화에 응용 프로그램을 설치했지만 관리자에게 10 분 정기 동기화를 위해 관리자에게 물어보고 내 응용 프로그램이 귀하의 것보다 1 초 앞에 1 초가되었습니다.내 애플리케이션의 동기화 작업에는 사용 가능한 인터넷 연결의 전체 (또는 거의) 대역폭을 사용하여 큰 데이터의 전송을 포함합니다.Smart SyncManager는 이전이 완료 될 때까지 다른 동기화 프로세스를 시작하는 것이 현명하지 않으므로 프로세스가 끝날 때까지 기다리지 않으므로

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top