Android Authenticator使用(轉)


出處:http://blog.udinic.com/2013/04/24/write-your-own-android-authenticator/

這篇文章個人覺得講的非常好,比官方文檔還要清晰,將各個概念講的非常清楚,對於新手非常有用,所以在這里記錄一下。

摘要:

為什么要使用Authenticator,而不是自己直接寫?

答:標准化方法、簡化開發流程,有管理多種token、與其他app共享token等功能。支持sync adapter等google框架。

概念解釋

幾個主要的部分:token;服務器;AccountManager,管理各個賬戶,其他部分會向AccountManager請求token,而AccountManager調用特定模塊來回應請求;AccountAuthenticator,用於處理特定賬戶類型(比如你自己創建的賬戶類型)的模塊,AccountManager受到請求后對AccountAuthenticator發起對話,而AccountAuthenticator執行相應的操作,可以通過launch activity從用戶處獲取token,或者在相應位置獲取token(所以AccountManager名字很形象了,是管理員,但是不干事的);AccountAuthenticatorActivity,是用來和用戶交互、和服務器交互的activity。

當app需要authentication的時候,它只和一個方法,即AccountManager.getAuthToken()會話;而AccountManager通過如下邏輯獲取token:

(說實話,我沒看懂圖。)

首次登陸流程:

  • app向AccountManager請求token
  • AccountManager向相關的AccountAuthenticator請求token
  • 由於是首次登陸,沒有緩存的token,因此AccountAuthenticator launch一個Activity,要求用戶登陸
  • 用戶登陸,AccountAuthenticator從服務器獲取一個token
  • AccountManager將token緩存,以便后期使用
  • app獲取token,萬事大吉

創建Authenticator

繼承自AbstractAccountAuthenticator。需要實現的主要方法:

addAccount

添加賬號。需要能夠launch相應的activity。

getAuthToken

獲取token。

創建activity

詳略。

創建服務

從而使其他進程能夠獲取賬號信息。詳略。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM