Android每日首次访问和安装后的首次访问

  • Java
public class AppStart {

    public static final boolean isFirstStart;

    static {
        boolean isFirst = false;
        String key = "isFirst";
        if (SPUtils.getInstance().getBoolean(key, true)) {
            SPUtils.getInstance().put(key, false);
            isFirst = true;
        }
        isFirstStart = isFirst;
    }

}
  • kotlin
object AppStart {
    var isFirstStart = false

    init {
        val key = "isFirst"
        if (SPUtils.getInstance().getBoolean(key, true)) {
            SPUtils.getInstance().put(key, false)
            isFirstStart = true
        }
    }
}

工具类

object AppStartUtil {

    private const val TAG = "AppStartUtil"

    //整个生命周期的
    fun isFirstStart(key: String, isFirst: () -> Unit) {
        if (SPUtils.getInstance().getBoolean(key, true)) {
            SPUtils.getInstance().put(key, false)
            isFirst.invoke()
        }
    }

    //每日的首次访问
    @SuppressLint("SimpleDateFormat")
    fun isFirstStartInDay(key: String, isFirst: () -> Unit) {
        //获取本地记录
        val lastShowDay = SPUtils.getInstance().getFloat(key, 0f)
        Log.d(TAG, "lastShowDay=$lastShowDay")
        val simpleDateFormat = SimpleDateFormat("MM.dd")
        val date = Date(System.currentTimeMillis())
        val today = simpleDateFormat.format(date).toFloat()
        if (lastShowDay != today) {
            //更新sp
            SPUtils.getInstance().put(key, today)
            //每日第一次
            isFirst.invoke()
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值