You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AndroidRate库中仅生成一次随机数设置setInstallDays参数?

AndroidRate库设置随机安装天数仅生成一次的解决方案

你需要将随机生成的天数持久化存储,避免每次Activity重建时重新生成。最直接的方式是用SharedPreferences来保存这个随机值,只在首次启动时生成并存储,后续直接读取已保存的值即可。

具体实现步骤:

  • 在Activity的onCreate中先获取SharedPreferences实例
  • 检查是否已经存储过随机天数,若没有则生成指定范围的随机数并写入SharedPreferences
  • 将读取到的随机天数传入setInstallDays()方法

修改后的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity);

    // 初始化SharedPreferences,用于存储随机天数
    SharedPreferences prefs = getSharedPreferences("AppRatePrefs", MODE_PRIVATE);
    int randomInstallDays = prefs.getInt("random_install_days", -1);

    // 如果还没生成过随机数,就生成并保存
    if (randomInstallDays == -1) {
        // 这里定义你需要的随机范围,比如3到7天
        Random random = new Random();
        randomInstallDays = random.nextInt(5) + 3; // 生成3-7之间的整数(包含3和7)
        
        // 将生成的随机数写入SharedPreferences
        prefs.edit().putInt("random_install_days", randomInstallDays).apply();
    }

    // 使用存储好的随机天数配置AndroidRate
    AppRate.with(this)
            .setInstallDays(randomInstallDays)
            .monitor();

    AppRate.showRateDialogIfMeetsConditions(this);
}

说明:

  • random.nextInt(5)会生成0-4的整数,加上3后就得到3-7的范围,你可以根据需求调整这个范围(比如要5到10天,就用random.nextInt(6) +5)
  • SharedPreferences的键名random_install_days可以自定义,只要保持唯一即可
  • 只有当首次启动App(或清除App数据后)才会生成新的随机数,之后每次启动都会使用同一个值

内容的提问来源于stack exchange,提问作者Eldestornillador

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:55:42