上次接了一個有在用戶首次安裝打開App的給用戶展現一些引導內容(覆蓋安裝時不顯示)的需求,在篩選了幾種方法以後,選出了一個最優的方法。ui
Android PackageInfo類中提供了兩個變量firstInstallTime
和lastUpdateTime
,其中firstInstallTime
表示App首次安裝的時間戳,lastUpdateTime
表示App上次更新的時間,當用戶首次安裝App的時候,這兩個值會相等。而且這兩個時Android系統來維護的,清除數據不會清除firstInstallTime
, lastUpdateTime
的值。這樣就很好實現咱們的需求了。 代碼以下:spa
判斷是否首次安裝code
fun checkIsFirstInstall(): Boolean {
val instance = MyApplication.instance
val packageManager = instance.packageManager
val packageInfo = packageManager.getPackageInfo(instance.packageName, 0)
return packageInfo.firstInstallTime == packageInfo.lastUpdateTime
}
複製代碼
判斷是否時首次安裝打開get
經過SharePreferences來處理是不是首次打開,二者組合就能夠判斷是不是首次安裝打開了it
fun checkIsFirstOpen(): Boolean {
return checkIsFirstInstall() && SPUtils.getData(Constant.Key.IS_FIRST_OPEN, true)
}
複製代碼