到目前为止,我遵循了本教程:http://udinic.wordpress.com/2013/04/24/write-your-own-android-authenticator/
它运行完美。但现在我想强制我的用户登录我的应用程序。
我遇到了一些问题,但尚未找到解决方案:
我应该如何处理通常的应用程序启动登录? App启动,调用MainActivity,MainActivity没有布局,只是决定是否调用AuthenticatorActivity或允许用户进入应用程序。这就是我的解决方案。有人有更好的吗?
当我使帐户的 authToken 无效时,下次用户触发需要 authToken 的操作时,将启动 AuthenticatorActivity。但是,如果他只是按后退按钮,他仍然可以返回使用该应用程序,当然他不能更改任何内容,因为现在有 authToken,但它仍然可能会让一些用户感到困惑。我怎样才能更好地解决这个问题?
最诚挚的问候!
最佳答案
您可能应该阅读有关 data storage 的更多信息.
您可以重写Application类,并创建自己的MyApplication类(单例模式),然后您可以:
管理应用程序运行时的第一个行为。
管理您的 token ,因为每个 Activity 都可以访问上下文,并且只要应用程序处于 Activity 状态,此类的上下文都是 Activity 的。然后,当用户注销时,您从此类中删除 token ,并在每个 Activity onCreat() 中检查当前应用程序上下文中是否存在 token 。
您可以在 Authenticator Activity 中重写 onBackPressed() 方法,以检查他是否有 token :
/*
- *(非 Javadoc)
- *@参见 android.app.Activity#onBackPressed() */
@覆盖 公共(public)无效onBackPressed(){ //在让用户返回之前检查用户是否有 token
if(hasToken()){ // go back AuthenticatorActivity.super.onBackPressed(); } else{ // close the activity finish();
} }
您可以使用共享偏好设置安全地保存您的 Cookie。
如果您有很多数据需要保存,您还可以使用数据库。
您还可以使用启动器 Activity ,它启动第一个 Activity 并决定将您重定向到哪个 Activity :登录 Activity 或主 Activity 。
关于Android:如何实现账户登录系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23289292/