J'ai un service dans lequel je veux prendre des photos de l'utilisateur. J'ai une tâche de minuterieService Android prenant des photos en arrière-plan OnUiThread
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
TimerMethod();
}
}, 0, 3000);
Et la méthode de minuterie
{if (na != null)
zzz.runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
takePhoto(getApplicationContext(), 1);
}
};
de TimerMethod private void()
Mon problème est que si je runOnUiThread l'application fonctionne plus lentement.
Comment puis-je exécuter dans un autre thread qui n'influencera pas l'expérience utilisateur?
Merci beaucoup.
Bonjour, donc je devrais sauter zzz.runOnUiThread (Timer_Tick) et faire quelque chose comme ça? takePhoto (getApplicationContext(), 1); inste exécuter et supprimer timerMethod? –
Le seul principe est que vous devez exécuter une méthode fastidieuse dans un nouveau thread, pas dans le thread principal. Les méthodes du service telles que onCreate(), onStartCommand() sont toutes exécutées dans le thread principal. – simonws