Фоновый таймер (Timer) Andoid Studio

В игре Alias потребовалось расширить свои знания в области фонового подсчета времени. Понятное дело потребуется класс наследник Thread или поддерживающий интерфейс Runnable. Как оказалось есть стандартный класс Timer.

В начале было слово… точнее объявление экземпляра класса:

final Timer timer= new Timer();

Затем создаем метод для таймер:

private void Stopwatch() { 
timer.scheduleAtFixedRate(new TimerTask() { 
@Override 
public void run() { 
runOnUiThread(new Runnable() { 
@Override 
public void run() { 
if (!pause_timer)  //здесь проверяю на паузе ли таймер, переменная pause_timer типа boolean
time_va--; 
 if (time_var == -1) { //здесь описываем, что будет когда таймер истечет по времени (в моем случае переменная будет меньше 0)
    timer.cancel();    //в данном случае прекращаем работу таймера


}); 

}, 0, 1000); //в расписании таймера указываем что задержка не нужна и "тик" равен 1 секунде. 
}

Далее в методе onCreate остается лишь запустить таймер:

Stopwatch();

В моём случае реализация позволила: отслеживать паузы в приложении (нажатие кнопки “Пауза”, сворачивание приложения); остановить таймер по истечению времени (хранящегося в переменной time_var).

Методы класса Timer:

  • void cancel() – прерывает поток таймера
  • int purge() – удаляет прерванные задания из очереди таймера
  • void schedule (TimerTask task, long delay) – задание task планируется к выполнению через период в миллисекундах, переданный в параметре delay
  • void schedule (TimerTask task, long delay, long period) – задание task планируется к выполнению через период в миллисекундах, переданный в параметре delay. Затем задание повторяется повторно периодически – каждые period миллисекунд
  • void schedule (TimerTask task, Date when) – задание task планируется на время, указанное в параметре when
  • void schedule(TimerTask task, Date when, long period) – задание task планируется на время, указанное в параметре when. Затем задание выполняется повторно периодически – каждые period миллисекунд
  • void scheduleAtFixedRate (TimerTask task, long delay, long period) – задание task планируется к выполнению через период в миллисекундах, переданный в параметре delay. Затем задание выполняется повторно периодически – каждые period миллисекунд. Время каждого повтора задаётся относительно первого запуска.
  • void scheduleAtFixedRate (TimerTask task, Date when, long period) – задание task планируется к выполнению на время, указанное в параметре when. Задание затем выполняется повторно периодически – каждые period миллисекунд. Время каждого повтора задаётся относительно первого запуска.

You may also like...

16 комментариев

  1. Low Cost Pharmacy Online viagra Prescription Drugs Without Rx Cytotec Prix Au Maroc Cat Dosage Amoxicillin

  2. How to buy isotretinoin Riverside Buy Propecia Now Le Cialis Marche cialis accion terapeutica Is Azithromycin Similar To Amoxicillin Pregnisone Pills From Uk Levitra Original Pas Cher

  3. Permethrin Cream cialis prices Zithromax Otc Viagra 100mg 40

  4. Viagra Online Uk Paypal п»їcialis Commander Cialis Generique En France

  5. Express Pharmacy New Zealand Que Significa La Propecia levitra for sale online Buy Celexa 20 Mg

  6. Oxido Nitrico Viagra buy cialis 674 Overnight Atenolol On Line Pastillas Cialis Y Alcohol Cialis 20 Mg Para Que Sirve

  7. Prix De Cialis Au Maroc Viagra Sans Ordonnance Pays Suisse Order generic isotretinoin low price internet overseas Amoxicillin Clavulanic Acid Dose Buy Antabuse

  8. Accutane Buy Online Reviews Amoxicillin Safe In Pregnancy generic cialis canada Cheap Meds Viagra In Svizzera Vu

  9. Kamagra Eu Generic Levitra For Sale In Us Cialis En Diabeticos vytorin Robaxin 500 Onlike No Prescription

  10. Pflanzliches Viagra Rezeptfrei Cialis 20mg Lilly tomar propecia lactosa monohidrato Buy Generic Viagra India Yaz Zovirax Cream Ointment

  11. Propecia Y Finasteride cheap cialis online Can Keflex Be Used For Uti

  12. Hello, tender thanks you for word! I repost in Facebook

  13. Levitra Venta order cialis online Antibiotic S Euro Med Tadalis Sx Soft Online Kaufen Propecia Frontaler Haarausfall

  14. Precio Oficial Viagra En Farmacia Acquista Cialis Tadalafil Propecia Chimica cheapest cialis 20mg Kamagra Dangerous Buying Viagra In Dubai

  15. Amoxicillin 875mg Tablet generic 5mg cialis best price Propecia Coupon Cheap Tadalis Cheap Silagra

  16. Finasteride 10mg Overseas Low Price Priligy Viagra Juntos Kamagra Helly 100mg cialis prices Amoxil Generique France Overnite Drug Orders

Добавить комментарий

Ваш e-mail не будет опубликован.

Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.
Регистрация не требуется. В качестве логина укажите рабочую почту, в качестве пароля - пароль от компьютера.