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

    webview 使用 cookieManager 来存储它的 cookie。我们需要将我们的 cookie 与 webView cookie(存储在 cookie 管理器中的 cookie)同步。

    何时删除所有持久化的 cookie。我们是否有任何针对应用程序退出的 android 特定回调?

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

    有没有更好的解决方案?

如果我们正在实现一个自定义类来维护 cookie,那么拥有 android CookieManager 有什么意义呢?

4

1 回答 1

1

我在我的应用程序中跨越了四个屏幕,cookie 存储在 cookie 管理器中。

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

现在我正在按下主页按钮。现在该过程已被终止。然后存储的 Cookies 也将被删除。

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

如果是这样,我们如何保持 app.js 的一致性。由于进程被终止,但应用程序正在从我们离开的活动中恢复,因此曾经存储的 Cookies 已被删除。

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

于 2013-12-12T21:03:33.447 回答