Android 如何正确统计页面停留时长
生活随笔
收集整理的這篇文章主要介紹了
Android 如何正确统计页面停留时长
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/zhaoyanjun6/article/details/112546517
本文出自【趙彥軍的博客】
在Android中經(jīng)常有統(tǒng)計頁面停留時長的需求,先看看以前的實(shí)現(xiàn)代碼:
class MainActivity2 : AppCompatActivity() {var startTime:Long = 0override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main2)//獲取頁面開始時間startTime = System.currentTimeMillis()}override fun onPause() {super.onPause()//獲取頁面結(jié)束時間var endTime = System.currentTimeMillis()//計算停留時長var stayTime = endTime - startTime} }System.currentTimeMillis() 是獲取當(dāng)前系統(tǒng)時間戳,如果用戶自行修改系統(tǒng)時間,那么這個時間戳就會改變,所以 System.currentTimeMillis() 獲取的時間是不可靠的。
那腫么辦?
使用 SystemClock.elapsedRealtime() , 此方法可以獲取 Android 設(shè)備的開機(jī)時長,包括睡眠時間,也就是說調(diào)用此方法可以獲取設(shè)備開機(jī)時到調(diào)用此方法時的完整時間。
注意:此方法是與時間戳無關(guān)的,不管設(shè)備系統(tǒng)在這個時間段是否更新校驗(yàn)時間。
使用 SystemClock.elapsedRealtime() 后的完整代碼如下:
package com.zhaoyanjunimport android.os.Bundle import android.os.SystemClock import androidx.appcompat.app.AppCompatActivityclass MainActivity2 : AppCompatActivity() {var startTime:Long = 0override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main2)//獲取頁面開始時間startTime = SystemClock.elapsedRealtime()}override fun onPause() {super.onPause()//獲取頁面結(jié)束時間var endTime = SystemClock.elapsedRealtime()//計算停留時長var stayTime = endTime - startTime} }總結(jié)
以上是生活随笔為你收集整理的Android 如何正确统计页面停留时长的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 打造异常崩溃捕获工具
- 下一篇: Androidx ViewPager+F