Une seule requête à la table Groupes prend environ 5 minutes malgré le fait que la table ne comporte que 15 lignes et malgré la spécification d'une projection de seulement 3 colonnes.L'interrogation de la table des groupes Android est très lente
Y at-il une raison pour que cela soit si lent? Est-ce que Android bloque l'accès à cette table pendant que d'autres applications y accèdent, par exemple? Existe-t-il un meilleur moyen d'obtenir des informations sur les groupes?
Voici un exemple d'une section de code qui prend plus de 5 minutes pour exécuter (notez que là, je ne l'ai pas inclus une requête ou une projection, mais il est pas plus lent que quand je fais):
ContentResolver resolver = context.getContentResolver();
resolver.query(android.provider.ContactsContract.Groups.CONTENT_URI,
null,
null,
null,
null);
Je n'ai pas vu une requête de groupe si lente, cela devrait prendre moins d'une seconde. essayez avec la sélection 'Groups.DELETED +" = 0 ET "+ Groups.GROUP_VISIBLE +" = 1 "', voir si cela aide. – marmor
comment comptez-vous le temps que la requête a pris? attendez-vous que les résultats s'affichent à l'écran ou effectuez-vous des mesures dans le journal? Je suggère d'ajouter un message de journal avant et après la ligne de requête et voir le diff dans les horodateurs – marmor
Je mesure déjà le temps en regardant les horodatages des journaux immédiatement avant et après. J'ai essayé une sélection encore plus étroite - en sélectionnant des valeurs spécifiques de 'Groups.ACCOUNT_TYPE' et' Groups.ACCOUNT_NAME' - mais c'est aussi lent. – UtterlyConfused