IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

[ContentProvider] Close cursor Android 2.3 ?


Sujet :

Android

  1. #1
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut [ContentProvider] Close cursor Android 2.3 ?
    Bonsoir,

    J'ai un soucis avec un contentprovider qui me retourne aucun résultat sur Android 2.3 (Nexus One) et qui me retourne bien ce qu'il faut sur Android 4.0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
    		Log.d("ContentProvider", "query select uri=" + uri);
     
    		SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    		String part1 = "";
    		String part2 = "";
    		int uriType = sURIMatcher.match(uri);
    		switch (uriType) {
     
    		case VEH_VOITURE:
    			part1 = SQLiteQueryBuilder.buildQueryString(true, VeHSQLite.TABLE_VEH_VOITURE, projection, selection, null, null, sortOrder, null);
    			part2 = SQLiteQueryBuilder.buildQueryString(true, VeHSQLite.TABLE_VEH_VOITURE_CUSTOM, projection, selection, null, null, sortOrder, null);
    			break;
    		case VEH_CAMION:
    			part1 = SQLiteQueryBuilder.buildQueryString(true, VeHSQLite.TABLE_VEH_CAMION, projection, selection, null, null, sortOrder, null);
    			part2 = SQLiteQueryBuilder.buildQueryString(true, VeHSQLite.TABLE_VEH_CAMION_CUSTOM, projection, selection, null, null, sortOrder, null);
    			break;
    		default:
    			throw new IllegalArgumentException("Unknown URI");
    		}
     
     
    		String query = queryBuilder.buildUnionQuery(new String[]{part1, part2}, sortOrder, null);
     
    		Log.d("ContentProvider", "query select sql=" + query);
     
    		SQLiteDatabase db =  mDB.getReadableDatabase();
    		Cursor cursor = db.rawQuery(query, null); 
     
     
    		cursor.setNotificationUri(getContext().getContentResolver(), uri);
    		return cursor;
    	}
    Donc sur Android 4.2, aucun soucis mes loaders sont bien initialisées, mais sur Android 2.3, rien
    En y allant au debug, les requêtes sont bien envoyées (et bien formées), mais sur Android 2.3, quand j'inspecte la variable "cursor", j'ai la variable "mStackTrace" j'ai "android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here". (Sur Android 4.0 cette variable est à null).

    Je ne sais pas si c'est lié au faite que j'ai aucun résultat, mais là je tourne un peu en rond dans mes recherches, si quelqu'un a une piste vers où m'orienter...

    Merci d'avance
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Problème résolu hier soir...
    A priori cela venait d'un problème de requêtes multiples simultanées et/ou d'une mauvaise initialiser de la base.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SQLite cursor select android
    Par PetitGregory dans le forum Android
    Réponses: 2
    Dernier message: 03/07/2013, 15h40
  2. Afficher des données d'un Cursor - Android database
    Par keybon dans le forum Android
    Réponses: 2
    Dernier message: 27/11/2012, 11h52
  3. Réponses: 1
    Dernier message: 02/06/2012, 23h53
  4. Cursor dans sqlite + android
    Par ensinienne dans le forum Android
    Réponses: 8
    Dernier message: 19/03/2012, 13h22
  5. MySQLdb cursor.close() n'a aucun effet?
    Par Bonsuere dans le forum Général Python
    Réponses: 2
    Dernier message: 17/09/2009, 08h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo