Bonjour,
Dans une application Android, je souhaite lancer au démarrage d'une activity une asyncTask qui avant et après son exécution doit mettre à jour des éléments de l'actionBar. Le programme a cependant un comportement "étrange".
Mon asyncTask modifiant la visibilité d'un MenuItem, je le fais passer en paramètre de cette dernière. Mon asyncTask doit donc être lancée après l'initialisation du menu, c'est à dire après l'appelle à la méthode onCreateOptionsMenu().
Voici donc à quoi ressemble mon activity :
et le code mon asyncTask :Code:
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
Le problème avec le code précédent, c'est qu'une fois le traitement terminé, l'appel à item.setVisible(true) ne semble pas fonctionner. En effet, mon MenuItem n'apparaît pas pour autant...Code:
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
36
37
38
39
J'ai pas mal chercher et je pense que le problème vient de l'endroit ou j'appelle ma fonction updateFonction(). En effet, si je ne l'appelle pas automatiquement et que j'attends que l'utilisateur clique par exemple sur une icône du menu pour lancer l'asyncTask, tout fonctoonne parfaitement : le MenuItem disparraît pour laisser sa place à la progressBar puis revient à la fin du traitement.
Ou dois-je alors placer l'appel de ma fonction updateFonction() ? Je pense que si j'appelle ma méthode après onCreateOptionsMenu() et non dedans, le problème serait résolu, mais comment faire ? Quelle méthode est appellé après onCreateOptionsMenu() ? onCreate, onResume et onStart sont appellées avant...
Merci d'avance pour votre aide !
