zoukankan      html  css  js  c++  java
  • 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

    详略。

    创建服务

    从而使其他进程能够获取账号信息。详略。

  • 相关阅读:
    pair
    非整除集合
    集合 set
    实现字通配符*
    vector
    矩阵及其初等变换
    求数组中连续子数组(最少有一个元素)的最大和。
    最长上升序列(Lis)
    st表求区间最大值
    [Noip2015] 信息传递
  • 原文地址:https://www.cnblogs.com/jennawu/p/9292162.html
Copyright © 2011-2022 走看看