小编use*_*441的帖子

android webview或浏览器在设备重启时不删除会话cookie

当我重新启动我的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?

谢谢.

android session-cookies android-webview

5
推荐指数
1
解决办法
3193
查看次数

如何将媒体播放器控件实现为跨活动持久的页脚

我正在开发音乐播放器应用程序。我的要求之一是在屏幕底部显示媒体控制栏(带有进度指示器和停止按钮)。即使用户在活动之间导航,当音乐在后台播放时,此栏也必须在整个应用程序中持续存在。

我想就如何最好地实现这一点提供一些建议,我面临的主要挑战是找到一种解决方案,使此控制栏在所有活动中都可见,并在播放音乐时“浮动”在屏幕上方。

我目前正在使用 MediaPlayer 通过 android 服务播放音乐,因此栏必须将其状态与服务同步。

在做了一些研究之后,我发现了一些关于我可以做什么的提示,但似乎都不理想:

  • 使用安卓通知。对我来说不是一个选择,因为我需要栏位于屏幕底部。
  • 使我的整个应用程序成为单个活动并大量使用片段。控制栏只是与服务同步的活动的页脚视图(通过本地 BroadcastReceiver 或其他回调方法)。我当前的所有活动都将转换为“shell”活动内的片段,我需要管理片段后台堆栈。我只是不喜欢这个选项,它看起来很乱,而且需要大量的重构工作。我已经看到的几个缺点是,当我运行“adb shell dumpsys activity”并查看正在运行的活动时,我不会再获得任何有用的调试信息。也不确定我是否可以使用片段,以防我需要在屏幕之间共享组件..(我还没有检查过我可以在片段布局中使用片段,但我对此表示怀疑)。

我想到的一个选项,但它并不优雅,是将这个控制栏作为一个片段,我将包含在我的所有活动中。当活动开始时,绑定到服务以获取最新状态,然后使用回调机制获取定期更新(通过 BroadcastReceiver)。

有什么更好的/其他想法吗?

谢谢。

android

5
推荐指数
1
解决办法
1229
查看次数

标签 统计

android ×2

android-webview ×1

session-cookies ×1