我昨天发布了一个问题,关于确定应用程序何时最终确定与销毁屏幕方向更改。感谢我收到的答案,我能够通过更改屏幕方向来解决我的问题。但是,我仍然遇到了障碍。 我正在使用的这个应用程序登录到一个带有HttpClient的网站。只要应用程序保留在内存中,HttpClient就会保留登录的cookie。但是,一旦它被杀死,它将需要再次登录。 我的问题:如何确定应用程序何时从内存中被杀死所以我可以将布尔值设置为false告诉应用程序它已从内存中删除,以便下次启动它时将读取此内容并确定是否必须再次登录?或者是否可以序列化HttpClient并将其放在savedInstanceState包中?可以从客户端提取cookie并将它们放在savedInstanceState包中吗?有没有我在这里完全失踪的东西? 非常感谢任何帮助或正确方向上的一点,因为这个让我难过。谢谢!
答案 0 :(得分:1)
恕我直言,这是错误的问题。如何确定应用的时间 从记忆中被杀死所以我可以设置 一个布尔值为false告诉应用程序它 已被从记忆中移除所以 下次启动它会读到这个 并确定是否必须再次登录?
正确的问题是:“我怎么能说饼干消失了?”
这是很多更接近真正的业务问题(“我怎么知道我是否必须再次登录?”)因此将涵盖更多潜在的边缘和角落情况,而不是假设某些系统事件是饼干消失的唯一来源。
此外,它更容易:您的HttpClient
对象可以让您访问CookieStore
,并且您可以迭代这些Cookie以查看您的是否在那里。不可否认,如果他们在这个类上有更直接的方法来进行这样的查找,那就太好了。
因此,在您访问Web应用程序之前,请检查cookie是否存在,并在需要时弹出登录对话框/活动/。
或者是否可以序列化 HttpClient并把它放在 savedInstanceState bundle?
没有
可以从中提取cookie 客户并将其放入 savedInstanceState bundle?
是的,但是你会有一段时间将他们带回CookieStore
,IIRC。