так, таймером Java можна користуватися , але оскільки питання задає кращий шлях (для мобільних пристроїв). Що пояснено тут .
Заради StackOverflow:
Оскільки Таймер створює нову нитку, це може вважатися важким,
якщо все, що вам потрібно, це отримати зворотний дзвінок, поки активність запущена, обробник може використовуватися спільно з a
Виконується :
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