Hello,
Je reprends le dév sous Android que je n'ai plus touché depuis un moment, et j'ai un problème "mémoire" (OutOfMemoryError)!
LA question étant de savoir, si c'est un problème de méthode de ma part (pas impossible), ou un vrai soucis de dév...
Le but:
-> parser 2 pages d'un fichier PDF, en 2 fois, car un paramètre de recherche & la page de lecture du PDF diffèrent entre la lecture n°1 et la n°2
-> et récupération des data dans un buffer, pour analyse
Ma méthode:
-> j'ai donc la fonction associée à mon bouton, qui se résume à appeler 2 fois mon AsyncTask, chaque fois avec les bons paramètres
-> les 2 appels fonctionnent très bien en solo, soit l'une,soit l'autre
-> MAIS les 2 ensemble = crash
-> PIRE (et c'est là qu'il y a peut être finalement un problème de méthode...), quand je trace les appels
- d'abord l'appel n°2 se lance d'abord, avant le 1er (après tout pourquoi pas)
- mais en plus, j'ai les mêmes paramètres (sens, par exemple, alors qu'il vaut bien 1 et 2) lors des 2 appels(????)
- alors qu'évidement, je lance bien mon AsyncTask avec des param différents pour les 2 appels
Les questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public void update_pdf (View view) { Bundle params = new Bundle(); params.putInt("pageDebut", 1); params.putInt("pageFin", 1); params.putInt("sens", 1); params.putString("arret", "Gare"); new AsyncTraiterPdf().execute(params); params.clear(); params.putInt("pageDebut", 3); params.putInt("pageFin", 3); params.putInt("sens", 2); params.putString("arret", "Centre"); new AsyncTraiterPdf().execute(params); }
-> (1) est-ce-que ça pose vraiment un problème de ressources d'appeler 2 fois (ou plus) 1 AsyncTask?
(ce qui me semblait plus lisible/propre puisque c'est bien le même objet qui lit le fichier, au final!)
-> (2) comment expliquer que les traces d'exécution montrent 2 fois les mêmes paramètres, alors qu'ils changent bien entre les 2 appels?
-> (3) est-ce-que je devrais plutôt n'appeler qu'une seule fois mon AsyncTAsk, en y faisant directement mes 2 traitements différents?
-> (4) est-ce-qu'un thread serait plus indiqué? quelles différences en fait, comment choisir entre les deux finalement?
Questions peut être connes pour les experts que vous êtes, mais j'avoue sécher.........
Sinon, je ne serais pas là!![]()
Partager