我问这个问题,因为我想确定哪个是在我的Android应用程序中存储用户“登录”/“已注销”状态的最佳方式。
这是我正在做的事情。在我的应用程序中,我连接到服务器,发送他的用户名和密码,如果一切正常,它返回给我好。所以现在我希望能够在我的应用程序中保存用户登录状态,因为我需要更改内容,具体取决于用户是否登录。
另一件事是我需要能够保存用户的登录状态,因此下次启动应用程序时他将自动登录。
任何建议或想法是最好的方法吗?
我对互联网进行了一些研究,并找到了几种方法:
答案 0 :(得分:1)
我使用静态类或SharedPreference - 它很简单,而且很有效。 SQLite不是好方法(在我看来)
答案 1 :(得分:1)
您的选项SharedPreference
在这种情况下是完美的,因为您只需存储布尔值,并且您将在应用中经常访问以更改内容。
答案 2 :(得分:1)
当您的应用失去焦点时可能有很多原因,例如按下主页按键来电等,但无论发生什么情况,您的当前onPause
的{{1}}方法被调用,所以您需要的是 -
Activity
方法onPause
保存应用程序的状态答案 3 :(得分:1)
将状态存储在设备上(使用SharedPreferences
或SQLite)的问题是用户可以操作它。因此,如果您只是在SQLite-Database中存储“isLoggedIn”,则可以操作此条目using dpms(例如)。
因此,如果你需要存储状态,你应该使用Application
- 类(这也可以被操纵,但是这样做更难)。如果用户关闭了应用程序,则会销毁状态变量,因此下次打开应用程序时需要进行登录。
为了便于使用,您可以存储用户名和(如果用户需要)密码。
此外,如果您有一个用于检查用户登录数据是否正确的Web服务,为什么不使用例如OAuth来验证服务器上的用户并提供内容从中?这基本上会使您的应用程序成为纯粹的“客户端”。
答案 4 :(得分:1)
SharedPreference是在时间方面访问单个值的最佳选择,与sql lite相比,我认为这是正确的。