作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码仅记录 cookie 列表和每 1 秒哪个 cookie 已过期的 bool 值。
我使用 AVD 模拟器 API 23 运行此源代码。然后,HttpCookie.hasExpired()
仅返回 false
。但是,当我在 Nougat(24~25) 和 Oreo 中运行代码时,一切正常。
class MainActivity : AppCompatActivity() {
private val TAG = this.javaClass.name
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val cookieStore = CookieManager().cookieStore
val testCookie = HttpCookie("test", "value")
.also { it.maxAge = 5 }
cookieStore.add(URI.create("http://localhost"), testCookie)
Timer().scheduleAtFixedRate(object : TimerTask() {
override fun run() {
Log.i(TAG, "cookies = ${cookieStore.cookies}, expired = ${testCookie.hasExpired()}")
}
}, 0, 1000)
}
}
我错过了什么吗?使用以下代码,它在非 Android 系统上运行良好。
fun main(args: Array<String>) {
val cookieStore = CookieManager().cookieStore
val testCookie = HttpCookie("test", "value")
.also { it.maxAge = 5 }
cookieStore.add(URI.create("http://localhost"), testCookie)
Timer().scheduleAtFixedRate(object : TimerTask() {
override fun run() {
println("${Date()} | cookies = ${cookieStore.cookies}, expired = ${testCookie.hasExpired()}")
}
}, 0, 1000)
}
最佳答案
如果我们比较 source code of HttpCookie in API 23和 source code of HttpCookie in API 24我们可以在 hasExpired()
方法中看到明显的行为差异,这可能是导致该问题的原因。
关于android - HttpCookie.hasExpired() 在 Nougat 之前无法正常工作 (24),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54070939/
此代码仅记录 cookie 列表和每 1 秒哪个 cookie 已过期的 bool 值。 我使用 AVD 模拟器 API 23 运行此源代码。然后,HttpCookie.hasExpired() 仅返
我是一名优秀的程序员,十分优秀!