我开发了一个 Android 应用程序。为了让用户保持登录状态,我将他们的用户名和密码存储在扩展的类中Application
。如果用户在未注销的情况下退出应用程序,则会启动一个后台服务,该服务将使用存储在应用程序上下文中的用户凭据(用户名和密码)。
这对我来说效果很好。但现在我已经在我的手机(三星 Galaxy Ace)中安装了 facebook。它有一项占用 37 MB RAM 的服务。现在当我运行我的应用程序的后台服务时。当我玩游戏或有时甚至在我锁定屏幕时(用户名和密码变为空),应用程序级别变量会被杀死。
怎么了?还有什么其他方法可以让用户保持登录状态?我不想使用 sqlite 数据库来存储用户名/密码。您可以轻松查看表格的值。
请注意
,即使这个 facebook 正在运行,我仍然有 38 MB 的 RAM 可用。我的应用程序仅使用 544kb 的内存。
EDIT1
这可能看起来令人惊讶,但我没有对我的代码进行任何更改。但是现在,即使我打开三个或四个应用程序,应用程序变量(用户名和密码)仍然存在。在上面的问题中,我说Application
一旦我锁定屏幕,变量就会变为空。但是现在,即使我玩游戏(打开另一个应用程序!),它们似乎仍然存在。Application
很明显,杀死变量的不是内存限制。
这是什么原因?是什么决定了应用级变量的查杀?