Maison >Java >javaDidacticiel >Comment remplacer l'API AsyncTask obsolète dans Android 11 ?

Comment remplacer l'API AsyncTask obsolète dans Android 11 ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-18 12:28:10220parcourir

How to Replace the Deprecated AsyncTask API in Android 11?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn