Стандартный Java-способ использования таймеров через java.util.Timer
и java.util.TimerTask
отлично работает на Android, но вы должны знать, что этот метод создает новый поток.
Вы можете использовать удобный класс Handler (android.os.Handler)
и отправлять сообщения обработчику через sendMessageAtTime(android.os.Message, long)
или sendMessageDelayed(android.os.Message, long
). После получения сообщения вы можете запускать требуемые задачи. Второй вариант был бы создать Runnable объект и график его с помощью функции обработчика postAtTime(java.lang.Runnable, long)
или postDelayed(java.lang.Runnable, long).
Для повторяющейся задачи:.
новый таймер() scheduleAtFixedRate (задача, после того, интервал); Для одного запуска задачи:
новый таймер(). Расписание (задача, после);
задача, метод, который будет выполняться после времени начального выполнения (интервал времени для повторения выполнения)
Handler:
private final int interval = 1000; // 1 Second
private Handler handler = new Handler();
Private Runnable runnable = new Runnable(){
public void run() {
Toast.makeText(MyActivity.this, "C'Mom no hands!", Toast.LENGTH_SHORT).show();
}
};
...
handler.postAtTime(runnable, System.currentTimeMillis()+interval);
handler.postDelayed(runnable, interval);
Сообщение:
private final int EVENT1 = 1;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case Event1:
Toast.makeText(MyActivity.this, "Event 1", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(MyActivity.this, "Unhandled", Toast.LENGTH_SHORT).show();
break;
}
}
};
...
Message msg = handler.obtainMessage(EVENT1);
handler.sendMessageAtTime(msg, System.currentTimeMillis()+interval);
handler.sendMessageDelayed(msg, interval);
Использование 'AlarmManager' –
Это может помочь вам: http://stackoverflow.com/questions/21089815/chronometer-inside-service – Kristopher