Ho un'attività che chiama initLoader quando viene creata per caricare i dati che l'attività mostrerà. Normalmente, questo funziona bene. Ho dei punti di interruzione per vedere l'ordine che tutto accada. Prima chiamo initLoader, poi ottengo il callback OnCreateLoader, quindi il callback OnLoadFinished, quindi tutto è ottimo.A volte non si attiva la richiamataCreateLoader dopo aver chiamato initLoader
Tuttavia, ho notato che se ho cambiato l'orientamento sul mio Android che non ottengo il callback OnCreateLoader o il callback OnLoadFinished, con conseguente nessun dato visualizzato sulla pagina. Ricevo ancora il mio breakpoint sulla chiamata di initLoader, quindi so che sta succedendo, ma non ricevo un errore e non riesco a trovare alcuna documentazione che spieghi perché non riceverei una richiamata dopo aver chiamato initLoader.
È interessante notare che, se ritorno all'orientamento originale, ottengo i callback.
Quindi, per riassumere:
comincio l'attività in orientamento verticale
- chiamo initLoader
- ottengo onCreateLoader e onLoadFinished callback
ho poi cambiare paesaggio
-
.210
- Chiamo initLoader
- non onCreateLoader o callback onLoadFinished
cambio di nuovo al ritratto
- chiamo initLoader
- ottengo onCreateLoader e onLoadFinished callback
Allo stesso modo, se avvio l'attività in modalità orizzontale ottengo i callback. Quindi, se passo al ritratto, non lo faccio. Quindi, se torno al panorama, ricevo di nuovo i callback.
Qualcuno ha idea di cosa sta succedendo?
questo è come il suo mento a lavorare. Se si chiama init su un loader che ha già caricato i suoi dati, restituirà tali dati tramite onLoadFinished. Si dovrebbe guardare http://developer.android.com/reference/android/app/LoaderManager.html#restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks) per ricaricare i dati –
Dori