Alternatives à l'API AsyncTask obsolètes dans Android 11
Dans Android 11, l'API AsyncTask est obsolète au profit de l'utilisation de java.util .concurrent package à la place. Les développeurs qui maintiennent des bases de code Android plus anciennes avec des tâches asynchrones devront adapter leur code pour une compatibilité future.
Java.util.concurrent Alternative pour la classe interne statique AsyncTask
Pour remplacer une classe interne statique AsyncTask utilisant java.util.concurrent pour une application avec une version minimale du SDK 16, l'extrait de code suivant peut être employés :
ExecutorService executor = Executors.newSingleThreadExecutor(); Handler handler = new Handler(Looper.getMainLooper()); executor.execute(new Runnable() { @Override public void run() { //Background work here handler.post(new Runnable() { @Override public void run() { //UI Thread work here } }); } });
Alternativement, les développeurs utilisant Java 8 ou une version ultérieure peuvent simplifier davantage le code :
ExecutorService executor = Executors.newSingleThreadExecutor(); Handler handler = new Handler(Looper.getMainLooper()); executor.execute(() -> { //Background work here handler.post(() -> { //UI Thread work here }); });
Cette approche utilise le package java.util.concurrent pour exécuter des tâches en arrière-plan et un Gestionnaire pour mettre à jour le thread de l’interface utilisateur. Il s'agit d'un remplacement approprié pour l'API AsyncTask obsolète tout en conservant la compatibilité avec les appareils Android exécutant des niveaux d'API plus anciens.
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!