Oui le timer de java peut être utilisé mais comme la question demande meilleur moyen (pour mobile). Ce qui est expliqué Ici .
Pour le bien de StackOverflow :
Depuis Minuterie crée un nouveau fil de discussion, il peut être considéré comme lourd,
si tout ce dont vous avez besoin, c'est d'être rappelé pendant que l'activité est en cours Manipulateur peut être utilisé en conjonction avec un
Runnable :
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);
ou un Message
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);
En passant, cette approche peut être utilisée si vous voulez exécuter un morceau de code dans le thread de l'interface utilisateur à partir d'un autre thread.
si vous avez besoin d'être rappelé même si votre activité n'est pas en cours, vous pouvez utiliser une fonction AlarmManager