私はAndroidアプリケーションに取り組んでいます。特定の数の起動に対して apprer ダイアログを開きたいです。そこで、次のコードを使用しました。
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: アプリの新しいバージョンがリリースされるたびに apprer を起動するために何かをすると便利です。