Even though the android process is killed,the activity stack is maintained.
For Example:
我在我的应用中越过了四个屏幕,Cookie存储在CookieManager
中。现在我按下主页按钮并且android杀死进程。由于进程被杀死,android CookieManager实例也被杀死(存储的所有cookie都被删除)。
当我恢复应用程序时,它从我离开的活动开始,但现在不再使用cookie。
Possible solutions: (Considering Html(WebView) + android is used in app)
需要在持久性存储中维护cookie。(不依赖于Android CookieManager)。
Challenges:
webview使用cookieManager存储其cookie。我们需要将我们的cookie与webView cookie(存储在cookie Manager中的cookie)同步。
什么时候删除所有持久性cookies.do我们有任何特定于Android的回调申请退出?
如果进程被终止,则从启动(从建立cookie的位置)重新启动应用程序。
Possibile Soln:
当新进程发生时,将调用Android Application类的oncreate
在那个时间点,我们可以从开始启动应用程序。
有没有更好的解决方案?
如果我们要实现一个用于维护cookie的自定义类,那么拥有android CookieManager有什么意义呢?
答案 0 :(得分:0)
我在我的应用中越过了四个屏幕,Cookie存储在Cookie管理器中。
我将假设这个“Cookie Manager”是一个静态数据成员。
现在我按下主页按钮。现在该过程被杀死了。然后,存储的Cookie也将被删除。
当进程终止时,“Cookie Manager”将与内存中的所有其他对象一起消失。
如果是这种情况,我们如何才能保持应用程序的一致性。由于进程被终止但应用程序正在从我们离开的活动中恢复,因此已删除的Cookie将被删除。
将Cookie保存在持久性存储中,例如文件,数据库或SharedPreferences
。或者,如果Cookie的总体大小很小,并且它对您的应用程序具有逻辑意义,请让它们成为Bundle
通过您的活动和片段传递给您的onSaveInstanceState()
的一部分。