獲取App累積時(shí)長(zhǎng)的方法在沈陽(yáng)APP開(kāi)發(fā)中的實(shí)現(xiàn)
2024/8/2 11:29:37 瀏覽:1514
我們都知道做一款A(yù)PP產(chǎn)品
,首要目的是如何提高用戶的活躍度,但是首先我們要能收集到每個(gè)用戶使用APP的時(shí)間,然后細(xì)分到每個(gè)APP頁(yè)面的使用時(shí)間,最后將這些時(shí)間值上傳到特定的服務(wù)器后臺(tái),有了特定的數(shù)據(jù)后就可以進(jìn)行分析了。所以最關(guān)鍵的一步是如何在實(shí)際APP開(kāi)發(fā)中將這一功能實(shí)現(xiàn),今天就來(lái)和大家分享一下本人的一些方法。首先先了解下應(yīng)用對(duì)象Application的ActivityLifecycleCallbacks方法,這個(gè)API最好在Application中調(diào)用,作為貫穿整個(gè)應(yīng)用的對(duì)象,應(yīng)用對(duì)象的Context,applicationContext擁有比Activity更長(zhǎng)的生命周期,更易維護(hù),回調(diào)函數(shù)少,也不用申請(qǐng)權(quán)限,作為sdk開(kāi)發(fā)而言,權(quán)限盡量越少越好。我們可以實(shí)現(xiàn)一個(gè)ActivityLifeCycle,然后繼承Application的生命周期接口即ActivityLifecycleCallbacks
,判斷應(yīng)用是否已經(jīng)在前臺(tái)
,定義頁(yè)面啟動(dòng)時(shí)的開(kāi)始時(shí)間點(diǎn)appStartTime和運(yùn)行時(shí)間runTimeThisDay,在onActivityStarted方法在根據(jù)System.currentTimeMillis()當(dāng)前時(shí)間
,用當(dāng)前時(shí)間減去開(kāi)始時(shí)間
,得到上次檢查時(shí)間lastCheckTime
,然后將時(shí)間保存到ShareprefUtils
。第二部在onActivityResumed方法中,更新上次檢查時(shí)間lastCheckTime=System.currentTimeMillis(),同時(shí)在onActivityPaused方法中獲取上次activity暫停的時(shí)間lastPausedActivityName
,用activity的getCanonicalName獲取
,如果用戶手動(dòng)結(jié)束了當(dāng)前頁(yè)面activity且是最后一個(gè)頁(yè)面,保存運(yùn)行時(shí)間runTimeThisDay直接上傳后臺(tái)
,如果不是最后一個(gè)頁(yè)面
,就暫時(shí)保存到本地
,最后在用戶退出整個(gè)APP時(shí)
,調(diào)用onActivityDestroyed方法,更新運(yùn)行時(shí)間runTimeThisDay上傳后臺(tái)服務(wù)器
網(wǎng)站制作 掃碼咨詢
,至此在APP中計(jì)算并保存運(yùn)行時(shí)間的功能已經(jīng)基本實(shí)現(xiàn)
。
聯(lián)系易勢(shì)
024- 3189 1684
售前QQ:724793417 售后qq:1992978979
地址:沈陽(yáng)市和平區(qū)中山路111號(hào)亞貿(mào)大廈1305、1306室

Copyright 2007- E-Forces All Rights Reserved 遼B2-20150173-8