Этот код просто регистрирует список файлов cookie и логическое значение, срок действия файлов cookie которого истек каждые 1 секунду.
Я запускаю этот исходный код с помощью API 23 эмулятора AVD.
И тогда 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)
}