2013-07-25 4 views
0

저도 같은 문제에 대해 언급했다 : Android SyncAdapter stuck in infinite sync loop무한 동기 루프 syncadapter

을하지만 onPerformSync에서 notifychange (열린 우리당 URI, ContentObserver 관찰자, 부울 syncToNetwork)를 구현하려고 한 후, 내가 모르는 것을 깨달았다 방법 내가 필요로하는 ContentObserver를 얻는다. (정의되고 주요 활동에서 전달된다.)

어떤 팁이 있나?

편집 1 : 내가 찾은 First time sync loops indefinitely

이 사람과 같은

그 ContentResolver.cancelSync (계정 권한); 뿐만 아니라 작동하지만, 누군가가 더 나은 솔루션을 가지고 있다면 ... 제게 알려주세요!

편집 2 :

내가 디버거를 통해 스테핑 후이 게시물 Android SyncAdapter Automatically Initialize Syncing

의 조언을 따라, 나는 그것이 notifyChange에 전달 될 때 SyncToNetwork가 가장 확실히 거짓 있음을 확인, 아직 무한 동기화는 계속 cancelSync없이 ... 여전히 영구적 인 해결책이 없습니다.

답변

2

저는 얼마 전에 Android 프로그래밍에 내 발가락을 담글 때이 질문을했습니다. 궁금한 사람에게 내가 찾은 것을 나눌 것이라고 생각했습니다. 사용자 지정 ContentProvider를 구현하기 위해 자습서를 진행할 때 update(), 및 delete() 메서드 뒤에 notifyChange (Uri uri, ContentObserver observer)이 사용 된 것을 보았습니다. 아무 것도 모르는 사이에 내 ContentProvider에서 notifyChange이라고도합니다. 이것은 내가 알지 못했던 무한 동기 루프와 같은 문제를 야기했다. 오버로드 된 메서드가 있습니다 : notifyChange (Uri uri, ContentObserver observer, boolean syncToNetwork) 그때 나는 알고 있었지만 내 notifyChange이 내 ContentProvider에서 호출 되었기 때문에 그것을 사용하는 방법을 결코 알 수 없었습니다. 이것은 실제로 쉬운 수정이었습니다. 내가해야만하는 것은 ContentResolver가 아닌 ContentResolver getContentResolver().insert() 등을 통해 해당 메소드를 호출 한 후, 내 ContentProvider가 아닌 notifyChange (uri, null, false)입니다.

이 정보가 도움이되기를 바랍니다.