Android:如何实现帐户登录系统?

时间:2014-04-25 09:32:41

标签: android login accountmanager auth-token

到目前为止,我遵循了本教程:http://udinic.wordpress.com/2013/04/24/write-your-own-android-authenticator/

它完美无缺。但现在我想强迫我的用户登录我的应用程序。

我遇到的一些问题并没有找到解决方案,但是:

  1. 我应该如何处理应用程序启动登录?应用程序启动,调用MainActivity,它没有布局,只是决定是调用AuthenticatorActivity还是允许用户进入应用程序。那是我的解决方案。谁有更好的?

  2. 当我使帐户的authToken无效时,下次用户触发需要authToken的操作时,将启动AuthenticatorActivity。然而,如果他只是按下后退按钮,他仍然可以返回使用应用程序,当然他不能改变任何东西,因为现在有authToken,但它仍然可能会混淆一些用户。我怎样才能更好地解决这个问题?

  3. 最诚挚的问候!

1 个答案:

答案 0 :(得分:2)

您应该阅读有关data storage的更多信息。

您可以覆盖Application类,并创建自己的MyApplication类(单例模式),然后您可以:

  • 管理应用程序启动时的第一个行为。

  • 管理您的令牌,因为可以从每个活动访问上下文,并且只要应用程序处于活动状态,此类的上下文就会生效。然后,当用户注销时,您将从此类中删除令牌,并在每个活动onCreat()中检查当前应用程序上下文中是否存在令牌。

  • 您可以覆盖Authenticator活动中的onBackPressed()方法,检查他是否有令牌:

    / *

    • *(非Javadoc中)
    • * @参见android.app.Activity #onBackPressed() * /

    @覆盖 public void onBackPressed(){     //在让他回去之前检查用户是否有令牌

    if(hasToken()){ 
        // go back
        AuthenticatorActivity.super.onBackPressed();
    }
    else{
       // close the activity
       finish(); 
    

    } }

  • 您可以使用“共享”偏好设置安全地保存Cookie。

  • 如果您要保存许多数据,也可以使用数据库。

你也可以使用一个启动器Activity,它启动第一个并决定重定向你的活动:Login Activity或Main Activity。