AccountManager는 대화 형 응용 프로그램이 아닌 동기화 어댑터에서 호출 할 수 있습니다. 그것은이 같다. (좋은 튜토리얼이 좋은 코드 예제를 제공하지만 데이터의 흐름을 설명하는 등 큰 일을하지 않는 Part 1 및 Part 2? "그러나»안드로이드 동기화 공급자를 쓰는 것은 당신이 승리 했") :
당신은 데이터베이스를 감싸는 ContentProvider를 개발합니다. 서버에 연결하고 데이터를 가져오고 ContentProvider를 동기화하여 서버와 일치시키는 SyncAdapter (백그라운드 서비스)를 빌드합니다. 그런 다음 ContentProvider에 쿼리하여 가져온 데이터를 표시합니다. 결과를 검색하고 캐시하려는 경우 특정 정보를 직접 쿼리하는 몇 가지 방법이 있습니다. 데이터 모델이 어떻게 나타나야하는지에 대한 좋은 1 시간 세션은 Developing RESTful Android Apps을 참조하십시오. 이들은 "순진한"구현에서 시작하여 적절한 SyncAdapter 모델로 진행하는 세 가지 아키텍처 예제를 제공합니다.
인증 자체에 대해 SyncAdapter가 AccountManager를 사용하는 방법은 인증 토큰을 얻는 것입니다. 이것은 대개 16 진수 값으로, 사용자 이름/비밀번호 쌍 대신 HTML 헤더의 일부로 전달됩니다. 한 세션 고유 키로 생각하십시오. 키의 소유권은 인증의 증거이며 주기적으로 만료됩니다. 만료되면 다시 인증하고 새 인증서를 가져옵니다. SyncAdapater는 AccountManager에 특정 계정 유형/사용자 이름 조합에 대한 인증 토큰을 요청합니다. AccountManager는 서버와 인증을하고 (변경 사항으로 인해 사용자에게 필요한 경우 새 암호를 묻습니다) 토큰을 SyncAdapter로 리턴합니다.
이 모델이 애플리케이션에 적합하지 않은 경우 앱 코드에서 수동으로 로그인/로그 아웃을 처리해야합니다. 고통의 종류, 알아.
그래서 마침내 로그인을 처리하고 AccountManager를 통해 나를 기억하나요? 나는 그것 때문에 애플 리케이션 흐름에 고심하고있다. 장치에 계정이없는 경우에만 내 앱을 시작할 때 AccountAuthenticatorActivity를 트리거하려고하지만 올바르게 작동하도록 "최상의 방법"흐름을 얻지 못합니다. – CinetiK