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

如何实现用户第二次打开App时触发应用评分请求?求代码示例

实现App第二次启动时触发应用评分请求的方案

要实现用户第二次打开App时显示评分请求,你需要结合启动次数统计和Google官方的In-App Review API来完成,以下是完整实现代码:

步骤1:统计App启动次数

使用SharedPreferences存储启动次数,这是轻量且持久化的存储方式:

// 在MainActivity的onCreate方法中添加统计逻辑
SharedPreferences prefs = getSharedPreferences("AppPrefs", MODE_PRIVATE);
int launchCount = prefs.getInt("launch_count", 0);
launchCount++;

// 更新存储的启动次数
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("launch_count", launchCount);
editor.apply();

// 判断是否是第二次启动,且未触发过评分请求(避免重复弹出)
boolean hasRequestedReview = prefs.getBoolean("has_requested_review", false);
if (launchCount == 2 && !hasRequestedReview) {
    // 触发评分请求
    requestAppReview();
    // 标记已请求过评分,防止重复触发
    editor.putBoolean("has_requested_review", true);
    editor.apply();
}

步骤2:实现In-App Review请求逻辑

结合你提供的代码,补全显示评分对话框的逻辑(Google Play的In-App Review API会自动处理对话框的展示):

private void requestAppReview() {
    ReviewManager manager = ReviewManagerFactory.create(this);
    Task<ReviewInfo> request = manager.requestReviewFlow();
    
    request.addOnCompleteListener(task -> {
        if (task.isSuccessful()) {
            // 获取到ReviewInfo后,启动评分对话框
            ReviewInfo reviewInfo = task.getResult();
            Task<Void> reviewFlow = manager.launchReviewFlow(this, reviewInfo);
            
            reviewFlow.addOnCompleteListener(reviewTask -> {
                // 评分流程完成(不管用户是否评分、是否关闭对话框)
                if (reviewTask.isSuccessful()) {
                    // 可在此添加后续逻辑,比如记录用户已完成评分流程
                }
            });
        } else {
            // 请求ReviewInfo失败,处理错误
            @ReviewErrorCode int reviewErrorCode = ((TaskException) task.getException()).getErrorCode();
            // 根据错误码做相应处理,比如:
            // REVIEW_ERROR_NO_ERROR: 无错误
            // REVIEW_ERROR_SERVICE_NOT_AVAILABLE: 服务不可用
            // REVIEW_ERROR_UNKNOWN: 未知错误
            // 可以选择后续启动时重试,或者忽略
        }
    });
}

注意事项

  • Google Play的In-App Review API有调用频率限制,即使触发了请求,也可能不会弹出评分对话框(比如用户近期已经评过分),这是官方机制,无法强制弹出。
  • 确保你的App已经接入Google Play Core库,在build.gradle中添加依赖:
dependencies {
    implementation 'com.google.android.play:review:2.0.1'
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:46:06