变量被垃圾回收

Had*_*ari 4 android garbage-collection

我有一个正在运行的android应用程序。一段时间后,当用户通过运行其他操作退出应用程序并返回到我的应用程序时,该应用程序中的静态变量似乎已被垃圾回收。

简而言之,我将在应用程序启动时保留输入的用户名/密码,并将其保留在静态变量中,并使用它们与服务器进行通信。我要么需要找出它们何时在应用程序重新启动时被垃圾回收(以便将它们重定向到登录视图),要么防止此类被垃圾回收。有想法吗?

Fra*_*nov 5

实现第二种情况的一种方法是实现自己的继承Application的类,并在清单中指定它。您可以将静态变量放在该类中。Android将在启动您的流程时创建该类的一个实例,并且只要该流程也处于活动状态,该实例就会处于活动状态。

因此,如果您在该类中有一个简单的布尔值(表示是否已执行登录),则现在可以通过可靠的方式随时检查是否应将用户定向到登录活动,或尝试使用内存中的用户名/密码。

此外,您可以使用标准的Android持久性组件之一(共享首选项文件,SQLLite,AccountManager,OBB,凭据存储等)在整个流程重启过程中保留凭据。但是请注意,这样做会带来一系列全新的问题,涉及如何正确保护用户凭据的持久副本,以保护其免受其他应用程序(尤其是在root用户的手机上)的未授权访问。