Suivez cette méthode. En utilisant cette méthode, vous pouvez simplement mettre à jour l'interface utilisateur à partir d'un thread d'arrière-plan. runOnUiThread travaille sur le thread principal (interface utilisateur). Je pense que cet extrait de code est moins complexe et facile, surtout pour les débutants.
AsyncTask.execute(new Runnable() {
@Override
public void run() {
//code you want to run on the background
someCode();
//the code you want to run on main thread
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
/*the code you want to run after the background operation otherwise they will executed earlier and give you an error*/
executeAfterOperation();
}
});
}
});
dans le cas d'un service
créer un gestionnaire dans le oncreate
handler = new Handler();
puis l'utiliser comme ceci
private void runOnUiThread(Runnable runnable) {
handler.post(runnable);
}
2 votes
Vous pouvez également utiliser le récepteur de radiodiffusion personnalisé.... essayer ma réponse ici, [Récepteur de radiodiffusion interne][1] [1] : stackoverflow.com/a/22541324/1881527
0 votes
Il existe de nombreuses façons de le faire. En dehors de la réponse de David et du commentaire de dzeikei dans sa réponse, (3) vous pouvez utiliser un récepteur de diffusion, ou (4) passer le gestionnaire dans les extras de l'Intent utilisé pour démarrer le service, et ensuite récupérer le gestionnaire du thread principal dans le service en utilisant getIntent().getExtras() .
2 votes
@sazzad-hissain-khan, Pourquoi taguer cette question de 2012 avec des réponses majoritairement en Java avec le tag kotlin ?