Sto usando UIL (per Nosotra) per scaricare le immagini che il server esegue il rendering e il server impiega fino a 50 secondi per creare ogni immagine. Il timeout del server è impostato su 15 secondi, quindi abbiamo creato un meccanismo di polling implementato nel metodo ImageDownloader.getStream()
. Dopo il download, le immagini vengono visualizzate in un ViewPager (android.support.v4.view.ViewPager
, proprio come il sample fa.)Utilizzo di Android-UIL, come interrompere il download?
Quando gli utenti a navigare ad altre pagine, vorrei fermare il polling senza scaricare i file, ma sembra che non c'è "bello "modo per interrompere il flusso di download.
GetStream pseudo-codice
1. Parse custom-style URI ("asdf://mypng|123455678945643563245");
2. Make a real world URL from it.
3. Poll the server for the image url (causes the server to render - could take up to 1m30s).
4. Get the stream from the URL, return the stream to caller.
Example Code: InputStream is = (InputStream) url.getContent();
cosa ha provato finora
Tornando null
dal mio metodo getStream
causa un NullPointerException
per essere gettato, quindi è praticamente uguale a un semplice lancio di un eccezione.
quando viene generata un'eccezione, l'immagine non si ferma, ma:
- Alcune immagini tardi, ottengo un
OutOfMemoryError
, quindi mostro un errore sullo schermo. Non dovrei ottenere l'errore. Ho già provato this SO question's checklist, ma non ha funzionato. OOM Stacktrace: - Il download si arresta e, se il viewer non ricicla la vista, quando si torna a quella pagina, vedrò comunque quella pagina di errore (nessun tentativo).
Quello che desidero
desidero per me avere un metodo di "attesa" che dovrebbe aggiungere fermare il download corrente e ri-aggiungere una nuova attività alla fine della coda (attualmente sul set su un QueueProcessingType.LIFO
e desidero scaricare il numero aggiunto dopo il dopo le pagine correnti e qualsiasi nuova pagina che l'utente desidera dovrebbe avere la precedenza su quelle aggiunte nuovamente.
Vorrei anche accontentarmi di evitare lo OutOfMemoryError
.
Per favore aiuto.
Vedere anche [questo problema] (https://github.com/nostra13/Android-Universal-Image-Loader/issues/903) sul GitHub del progetto. – Felix
Sei sicuro che la tua app non abbia perdite di memoria? – NOSTRA
Fino ad ora, non ne abbiamo notato nessuno, e il problema si verifica solo quando si utilizzano le visualizzazioni di pagina. – Felix