Android判断应用首次安装以及首次安装打开

7,752 阅读1分钟

介绍

上次接了一个有在用户首次安装打开App的给用户展示一些引导内容(覆盖安装时不显示)的需求,在筛选了几种方法之后,选出了一个最优的方法。

实现

Android PackageInfo类中提供了两个变量firstInstallTimelastUpdateTime,其中firstInstallTime表示App首次安装的时间戳,lastUpdateTime表示App上次更新的时间,当用户首次安装App的时候,这两个值会相等。并且这两个时Android系统来维护的,清除数据不会清除firstInstallTimelastUpdateTime的值。这样就很好实现我们的需求了。 代码如下:

判断是否首次安装

 fun checkIsFirstInstall(): Boolean {
        val instance = MyApplication.instance
        val packageManager = instance.packageManager
        val packageInfo = packageManager.getPackageInfo(instance.packageName, 0)
        return packageInfo.firstInstallTime == packageInfo.lastUpdateTime
    }

判断是否时首次安装打开

通过SharePreferences来处理是否是首次打开,两者组合就可以判断是否是首次安装打开了

fun checkIsFirstOpen(): Boolean {
        return checkIsFirstInstall() && SPUtils.getData(Constant.Key.IS_FIRST_OPEN, true)
    }