当我重新启动我的Android设备(kindle fire)或杀死一个应用程序时,似乎浏览器或WebView'会话'cookie不会被删除.这似乎与Windows或MacOS上的浏览器行为完全不同,如果您终止浏览器应用程序,那么'会话'cookie就消失了.浏览器进程重启后,只应保留"持久性"cookie.为了澄清,这里'session cookies'的含义是服务器设置的cookie,没有到期日期,在响应中使用http头,例如:Set-Cookie:mycookie = ifmr0846qcsdpeqqkgvuqmc5u7; path = /由于没有指定过期日期,因此根据我的理解,浏览器通常不会保留这些过期日期,直到进程被终止为止.通常,使用此类型的cookie设置会话ID.
我确信这些不会在设备重启或应用程序重启时删除,因为如果我登录到我的网站,建立会话(使用非持久性/'会话'cookie作为会话ID,在这种情况下名为PHPSESSID),然后重新启动设备并打开浏览器或WebView到同一个网址,我仍然登录,这对我来说意味着浏览器仍然发送了服务器在设备重启之前设置的相同PHPSESSID cookie.
谁能解释/确认Android WebViews或浏览器的这种行为?他们如何完全管理会话和持久性cookie?
谢谢.
我正在开发音乐播放器应用程序。我的要求之一是在屏幕底部显示媒体控制栏(带有进度指示器和停止按钮)。即使用户在活动之间导航,当音乐在后台播放时,此栏也必须在整个应用程序中持续存在。
我想就如何最好地实现这一点提供一些建议,我面临的主要挑战是找到一种解决方案,使此控制栏在所有活动中都可见,并在播放音乐时“浮动”在屏幕上方。
我目前正在使用 MediaPlayer 通过 android 服务播放音乐,因此栏必须将其状态与服务同步。
在做了一些研究之后,我发现了一些关于我可以做什么的提示,但似乎都不理想:
我想到的一个选项,但它并不优雅,是将这个控制栏作为一个片段,我将包含在我的所有活动中。当活动开始时,绑定到服务以获取最新状态,然后使用回调机制获取定期更新(通过 BroadcastReceiver)。
有什么更好的/其他想法吗?
谢谢。