Hello !

Mon AsynTask marche correctement jusqu'à la fin de l’exécution de doInBackground(). En effet, onPostExecute() n'est jamais appelé. Ce n'est pas un problème d'argument retourné et déclaré comme j'ai pu lire dans certains post déjà créés.


Voici mon code :

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
public class DisplayEvents extends Activity {
 
    public DisplayEvents() {
    }
 
    @Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_lst_events);
        Log.i("monactivity", "test02");
		// Calling async task to get json
		new GetEvents().execute();
	}
 
    class GetEvents extends AsyncTask<Void, Void, Void>
    {
        private ArrayList<Event> listeEvent;
        private ProgressDialog pDialog = new ProgressDialog(DisplayEvents.this);
 
        @Override
        protected void onPreExecute() {
            // TODO i18n
            pDialog.setMessage("Please wait..");
            pDialog.show();
        }
 
        @Override
        protected Void doInBackground(Void... unused) {
            RequestWebService rws = new RequestWebService();
            Log.i("monactivity", "test1");
            try {
                listeEvent = rws.getAllEvents();
            } catch (JSONException e) {
                e.printStackTrace();
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            Log.i("monactivity", "test2");
            return null;
        }
 
        @Override
        protected void onPostExecute(Void unused)
        {
 
            if (pDialog.isShowing())
            {
                pDialog.dismiss();
            }
            Log.i("monactivity", "test2");
            /**
             * Affiche la liste des events
             * */
 
            Log.i("monactivity", "test3");
            RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view_event);
 
            // use this setting to improve performance if you know that changes
            // in content do not change the layout size of the RecyclerView
            mRecyclerView.setHasFixedSize(true);
 
            // use a linear layout manager
            RecyclerView.LayoutManager mLayoutManager;
            mLayoutManager = new LinearLayoutManager(DisplayEvents.this);
            mRecyclerView.setLayoutManager(mLayoutManager);
 
            // specify an adapter (see also next example)
            MyAdapterEvent mAdapter = new MyAdapterEvent(listeEvent,this);
            mRecyclerView.setAdapter(mAdapter);
            Log.i("monactivity", "test4");
 
        }
    }
 
}
Mon application crashe après le doInBackground()
En mode débugage pas à pas je m’aperçois que mon code s’arrête dans cette portion de code de la classe AsynkTask.java

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public synchronized void execute(final Runnable r) {
            mTasks.offer(new Runnable() {
                public void run() {
                    try {
                        r.run();
                    } finally {
                        scheduleNext();
                    }
                }//Stop ici
            });
            if (mActive == null) {
                scheduleNext();
            }
        }
J'ai tenté de renvoyer mon tableau ou des Integer en modifiant comme il se doit les paramètre dans les différents protos mais mon code s’arrête toujours au même endroit.
Je suis à court d'idées. Pourquoi mon programme n'exécute t il pas onPostExecute() ?

Merci pour vos retours !