上次接了一个有在用户首次安装打开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)
}
复制代码