Как сделать интервал между Toast?

101
27 декабря 2020, 10:30

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

Answer 1

Для этого можно создать отдельный AsyncTask, который будет через каждые n секунд показывать Toast. Переменная boolean showToast отвечает за цикл, пока она true, тосты будут всплывать.

class ShowToastTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected Void doInBackground(Void... voids) {
        try{
            while (showToast) {
              TimeUnit.SECONDS.sleep(20);
              getActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                   Toast toast = Toast.makeText(getApplicationContext(), 
                   "Toast msg", Toast.LENGTH_SHORT); 
                   toast.show(); 
                } 
              });
            }
        }catch (InterruptedException e){
            e.printStackTrace();
        }
        return null;
    }
}

Вызвать его можно на пример в методе onCreate()

ShowToastTask toastTask = new ShowToastTask();
toastTask.execute()
READ ALSO
Кэш для нагруженного веб приложения

Кэш для нагруженного веб приложения

Приложение отдает одинаковые данные клиентамНапример список стран

118
Android Как правильно реализовать PagerAdapter

Android Как правильно реализовать PagerAdapter

Делаю приложение - расписаниеИспользую MVP + Moxy

80
Как протестировать Spring веб-метод?

Как протестировать Spring веб-метод?

В этом методе происходит реверс слова с использованием рекурсии и без неё

104