我有一个应用程序,要求用户第一次登录,之后应该保持此状态。应用程序在登录过程中从后端接收一些数据。此数据在应用程序的生命周期内使用
但Android在内存不足的情况下会杀死我的应用程序。所以我搜索并发现服务作为其解决方案。所以我在服务中编写了登录代码。因此,每当服务重新启动时(在后台应用程序被杀死之后),用户将自动登录。为此,我想要用户凭据。但我不希望登录凭据存储在共享首选项或DB中。
任何形式的帮助都会很棒。
答案 0 :(得分:1)
如果要在不使用共享首选项或数据库的情况下将凭据发送到服务,则可以在启动服务时发送它们。当您创建用于启动服务的Intent
时,如果要将凭据发送到putExtra(name, value)
,则可以使用方法Service
。
(编辑)当服务被破坏时,您将不得不在某处保存凭据。如果您不想永久保留共享首选项,可以在服务被销毁之前保存它们,在onDestroy()中,并在onCreate()
答案 1 :(得分:1)
如果您不想在共享首选项中保存登录凭据,那么您可以在共享首选项中实现其他选项,例如商店登录状态,而不是登录凭据。
您将能够维护用户登录状态的状态。
希望它会对你有所帮助。
答案 2 :(得分:1)
您可以更改服务器,以便它返回一个身份验证令牌,您可以将其存储在SharedPreferences中。然后将该令牌用于所有其他呼叫。
其他解决方案是存储密码的(盐渍)哈希并上传。
两种解决方案都不是万无一失的,如果有人能够获得您的咸味哈希或令牌(取决于您使用的),他/她可以登录。 但至少,通过HTTPS登录,这样有人就无法从网络上嗅探您的令牌/凭证。
在Android上有一个AccountManager,也许它可以让你知道如何实现。 http://developer.android.com/reference/android/accounts/AccountManager.html