Une bonne pratique consiste à créer anonyme AsyncTask parallèle petite connus processus de freeze?

E. g.: tu vas faire quelque chose qui ne prendra que quelques secondes et ne veux pas geler votre INTERFACE utilisateur thred, droit? Vous pouvez utiliser un AsyncTask, mais vous ne voulez pas créer un externe (ou interne) de la classe pour résoudre un petit gel problème.

Donc, est une bonne pratique?

package com.example.stackoverflowsandbox;

import android.os.AsyncTask;

public class Foo {
    //E.g. before call foo method you change you Activity to loading state.
    private void foo() {
        new AsyncTask<Void, Void, Void>() {
            @Override
            protected Void doInBackground( final Void ... params ) {
                //something you know that will take a few seconds

                return null;
            }

            @Override
            protected void onPostExecute( final Void result ) {
                //continue what you are doing...

                Foo.this.continueSomething();
            }
        }.execute();
    }

    private void continueSomething() {
        //some code...
    }
}

J'ai été confronté avec ce que quand je la compression des images bitmap et boucle grand tableau pour mettre à jour certaines données à l'intérieur des éléments.

Je ne vois pas comment cela permet d'économiser tout travail vs la création d'un intérieur de classe, regarde juste terriblement désordre de l'OMI
Ça dépend... la seule chose qu'il puisse arriver est que le Fil(AsyncTask) continue de fonctionner une fois que l'Activité a été mis en arrière-plan ou est détruit. Mais en général, c'est terrible, parce que la classe anonyme est emprunté quelque part dans le code.
juste pour une question de lisibilité, rappelez-vous que les objets de créer à partir de anonyme intérieur de la classe sont appelés avec la notation OuterClass$2, et si vous commencez à la nidification intérieur de la classe, le debuggin peut être difficile
Je ne vois pas de problèmes, mais dans certains cas, vous préférerez peut-être créer une définition externe pour des fins de réutilisation. Personnellement, je préfère l'externe asynctasks/auditeurs modèle. Il y a une performance de pointe sur la création d'intérieure privée les classes de developer.android.com/training/articles/... qui ne s'appliquent pas à votre cas, mais intéressant à lire.

OriginalL'auteur Marcelo Filho | 2014-07-18