Android: установите таймер, чтобы разрешить открытие активности

#android #timer

Вопрос:

У меня есть функция «спин, чтобы выиграть» в моем приложении, которую пользователь может использовать для получения монет. я хотел бы сделать так, чтобы после того, как пользователь воспользуется спиннером, ему пришлось бы ждать 8 часов, прежде чем ему разрешат снова открыть вращение. как это сделать ?

Ответ №1:

одним из способов будет:

  • определите эти 8 часов с момента, когда он закрутился ->
 
    long duration = System.currentTimeMillis()   your8hours;
 
  • сохраните эти данные (sharedpreference) ->
     SharedPreferences sharedPreferences = new SharedPreferences();
    sharedPreferences = getSharedPreferences("MYDURATIONSAVED", Context.MODE_PRIVATE)
    Editor editor = sharedPreferences.edit();
    editor.putInt("durationSaved", duration);
    editor.apply();
 
  • в новом сеансе вы извлекаете данные ->
     long alreadyExistingDuration = sharedPreferences.getLong("durationSaved", -1);
 
  • и просто сравните его, чтобы проверить, разрешено ли пользователю вращаться снова или нет ->
     long check = System.currentTimeMillis();

    if(check >=  alreadyExistingDuration){
    allow...
    }
 

если бы вы поместили образец своего кода, я бы использовал его
, например, если вы используете sqlite, firebase или файлы для хранения ваших данных, возможно, это был бы другой ответ
Но данные, которые вам нужно хранить, примитивны, поэтому sharedpreference должно быть достаточно

Комментарии:

1. Все ли коды должны быть помещены в SpinnerActivity?, или MainActivity, у которых есть кнопка, открывающая spinnerActivity