Passer l'exécution au thread principal dans les environnements multithreading
Dans la programmation multithread, en particulier au sein des services Android, des situations peuvent survenir dans lesquelles les threads d'arrière-plan doivent interagir avec le fil principal. Une exigence courante consiste à publier des tâches, telles que Runnables, dans la file d'attente des messages du fil principal.
Solution avec référence contextuelle
Si le fil d'arrière-plan a accès à un contexte objet, le contexte Application ou Service peut être utilisé pour obtenir un gestionnaire pour le thread principal :
Handler mainHandler = new Handler(context.getMainLooper()); Runnable myRunnable = new Runnable() { @Override public void run() { // Code to execute on the main thread } }; mainHandler.post(myRunnable);
Solution sans contexte Référence
Dans les cas où le fil d'arrière-plan n'a pas de référence de contexte, une approche alternative suggérée par @dzeikei peut être utilisée :
Handler mainHandler = new Handler(Looper.getMainLooper()); Runnable myRunnable = new Runnable() { @Override public void run() { // Code to execute on the main thread } }; mainHandler.post(myRunnable);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!