2

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

它工作完美。但现在我想强制我的用户登录我的应用程序。

只是一些我有但尚未找到解决方案的问题:

  1. 我应该如何处理 App 启动登录的常规操作?App启动,调用MainActivity,没有布局,只是决定是调用AuthenticatorActivity还是允许用户进入应用。这就是我的解决方案。有人有更好的吗?

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

此致!

4

1 回答 1

2

您应该阅读有关数据存储的更多信息。

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

  • 管理应用程序在午餐时的第一个行为。

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

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

    /*

    • *(非 Javadoc)
    • *@see android.app.Activity#onBackPressed() */

    @Override public void onBackPressed() { // 在让用户返回之前检查用户是否有令牌

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

    } }

  • 您可以使用共享偏好来安全地保存您的 cookie。

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

您还可以使用启动器活动,它启动第一个活动并决定将您重定向到哪个活动:登录活动或主活动。

于 2014-04-25T09:53:19.207 回答