我正在开发一个 Android 应用程序。我想为特定数量的启动打开一个评估器对话框。所以我使用了以下代码。
public static void app_launched(Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("apprater", 0);
if (prefs.getBoolean("dontshowagain", false)) { return ; }
SharedPreferences.Editor editor = prefs.edit();
// Increment launch counter
long launch_count = prefs.getLong("launch_count", 0) + 1;
editor.putLong("launch_count", launch_count);
// Get date of first launch
Long date_firstLaunch = prefs.getLong("date_firstlaunch", 0);
if (date_firstLaunch == 0) {
date_firstLaunch = System.currentTimeMillis();
editor.putLong("date_firstlaunch", date_firstLaunch);
}
// Wait at least n days before opening
if (launch_count >= LAUNCHES_UNTIL_PROMPT) {
if (System.currentTimeMillis() >= date_firstLaunch +
(DAYS_UNTIL_PROMPT * 24 * 60 * 60 * 1000)) {
showRateDialog(mContext, editor);
}
}
editor.commit();
}
它工作正常。但我的问题是,如果我给 LAUNCHES_UNTIL_PROMPT 是 3,那么对话框将在第 4 次启动时出现并且用户给出他的评级,然后 5 次对话框再次启动..每次对话框启动时。所以对用户来说是很恶心的。如果用户评价了应用程序,则无需再次“评价应用程序”,直到下一个版本发布
PS:每当发布新版本的应用程序时,做一些事情来启动 apprater 是有帮助的。