问题描述
在 Android 中,我们可以有 different process (e.g. a Service in another process)。
但是,我注意到 CookieManager(来自 android.webkit.CookieManager)不会在整个过程中同步其新设置的 Cookie。
我在 MainActivity 中有一个设置 Cookie 的函数
cookieManager.setCookie(url,cookieString)
cookieManager.flush()
如果我在 MainActivity 或 MainService(同一进程中的服务)中读取它,那么我可以读取它。
val cookie = cookieManager.getCookie(url)
但是,如果我在OtherService(其他进程中的服务)中读取它,那么它可能无法获取。
为了清楚地展示这一点,我创建了一个应用程序,如下所示。您可以获得code here
1.全新安装应用
- 安装新创建的应用
- 单击主进程服务:日志 (TrackingMe) 显示没有设置 Cookie 正确>
- 单击其他进程服务:日志 (TrackingMe) 显示没有设置 Cookie 正确>
- 点击Write Cookie将cookie写入CookieManager
- 点击主进程服务:Log (TrackingMe) 显示 Cookie Set Correct>
- 单击其他进程服务:日志 (TrackingMe) 显示没有设置 Cookie 不正确>
2.杀死应用程序并重新启动应用程序
- 杀死并重新启动应用程序(不要删除应用程序数据)
- 点击主进程服务:Log (TrackingMe) 显示 Cookie Set Correct>
- 单击其他进程服务:日志 (TrackingMe) 显示 Cookie Set Correct>
- 点击清除Cookie将所有Cookie清除到CookieManager
- 单击主进程服务:日志 (TrackingMe) 显示没有设置 Cookie 正确>
- 单击其他进程服务:日志 (TrackingMe) 显示 Cookie 设置 不正确>
发现
问题:
- 我们怎样才能让其他进程服务立即从 CookieManager 获取 Cookie? (无需重新启动应用程序?)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)