Android进程被杀 - 是CookieManager实例被杀?

时间:2013-12-12 20:58:14

标签: android memory-management process android-cookiemanager

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)
  1. 需要在持久性存储中维护cookie。(不依赖于Android CookieManager)。  Challenges:

    webview使用cookieManager存储其cookie。我们需要将我们的cookie与webView cookie(存储在cookie Manager中的cookie)同步。

    什么时候删除所有持久性cookies.do我们有任何特定于Android的回调申请退出?

  2. 如果进程被终止,则从启动(从建立cookie的位置)重新启动应用程序。  Possibile Soln:当新进程发生时,将调用Android Application类的oncreate 在那个时间点,我们可以从开始启动应用程序。

    有没有更好的解决方案?

  3. 如果我们要实现一个用于维护cookie的自定义类,那么拥有android CookieManager有什么意义呢?

1 个答案:

答案 0 :(得分:0)

  

我在我的应用中越过了四个屏幕,Cookie存储在Cookie管理器中。

我将假设这个“Cookie Manager”是一个静态数据成员。

  

现在我按下主页按钮。现在该过程被杀死了。然后,存储的Cookie也将被删除。

当进程终止时,“Cookie Manager”将与内存中的所有其他对象一起消失。

  

如果是这种情况,我们如何才能保持应用程序的一致性。由于进程被终止但应用程序正在从我们离开的活动中恢复,因此已删除的Cookie将被删除。

将Cookie保存在持久性存储中,例如文件,数据库或SharedPreferences。或者,如果Cookie的总体大小很小,并且它对您的应用程序具有逻辑意义,请让它们成为Bundle通过您的活动和片段传递给您的onSaveInstanceState()的一部分。