有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android强制更新Webview会话

我有一个嵌入了Webview的安卓应用程序和一个该应用程序连接的网站。当用户登录(或注销)时,会话数据似乎需要大约一两分钟才能存储在永久内存中

这样做的结果是,如果在登录(或注销)后立即关闭应用程序,则会话数据不会持久化,稍后再次打开应用程序会恢复到上一个会话

这看起来像是某种缓存问题,我四处寻找解决方案,但似乎无法找到任何方法强制更新会话数据,如果有人能为我指出正确的方向,我将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    我在我的^{中使用了以下代码

        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            //Not sure if this part works haven't tested it yet
            CookieSyncManager sm = CookieSyncManager.createInstance(context);
            sm.sync();
        } else {
            cookies.flush();
        }
    

    CookieSyncManager在棒棒糖中已过时,请在CookieManager实例上调用flush。这将把内存中的cookie保存到永久存储器中。请注意,这仍然是异步完成的,因此您无法运行它onDestroy()它仍然需要几秒钟的时间

    我把它放在了@JavascriptInterface函数中,每当用户登录或注销时,javascript都会调用这个函数,它似乎工作得很好