Выполнение метода только один раз в сутки android java - PullRequest
0 голосов
/ 04 августа 2020
public ListenableFuture<?> fakeUpload() {
    ImmutableList.Builder<Keys> builder = ImmutableList.builder();
    for (int i = 0; i < 14; i++) {
      byte[] bytes = new byte[KEY_SIZE_BYTES];
      RAND.nextBytes(bytes);
      builder.add(
          Keys.newBuilder()
              .setKeyBytes(bytes)
              .setIntervalNumber(FAKE_INTERVAL_NUM)
              .build());

    }

    return doUpload(builder.build(), true);
  }

Я хочу, чтобы эти ключи загружались только один раз в день. Как я могу это сделать?

1 Ответ

3 голосов
/ 04 августа 2020

Теперь вы можете написать этот код в действии приложения, где вы хотите, или создать службу и записать код там: -

private fun shouldUploadFakeKeys(): Boolean {
    if (sharedPreferenceUtil.getInt(Constants.EXTRA_DAILY_KEYS_UPLOAD) != getTodaysDate()) {
        sharedPreferenceUtil.putBoolean(Contants.EXTRA_HAS_FAKE_KEYS_UPLOADED_TODAY,false)
        return true
    } else if (sharedPreferenceUtil.getBoolean(Contants.EXTRA_HAS_FAKE_KEYS_UPLOADED_TODAY)) {
        return false
    }
    return true
}
fun getTodaysDate(): Int {
        return ZonedDateTime.now().dayOfMonth
    }

Создайте файл констант, если у вас его еще нет: -

Constants.kt

class Constants{
    companionObject{
         const val EXTRA_DAILY_KEYS_UPLOAD = "EXTRA_DAILY_KEYS_UPLOAD"
         const val EXTRA_HAS_FAKE_KEYS_UPLOADED_TODAY = "EXTRA_HAS_FAKE_KEYS_UPLOADED_TODAY"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...