quali sono le situazioni più comuni ERROR_HTTP_DATA_ERROR possono essere attivate dal download manager?
Senza vedere alcun codice, è probabile che funzioni. From the docs:
Se si è verificato un errore HTTP, questo terrà il codice di stato HTTP come definito nella RFC 2616.
Questo vi darà un errore HTTP standard da cui si può trovare un 6.1.1 Status Code and Reason Phrase. Se stai avendo milioni di download, e questi sono da una serie limitata di siti, questo potrebbe essere un problema che va oltre la tua app, poiché i server del sito web potrebbero non essere in grado di gestire il traffico.
e che dire della disconnessione della rete nel mezzo del download?
Problemi di connettività Internet;
"408" ; Section 10.4.9: Request Time-out
fa si innesca anche l'errore ERROR_HTTP_DATA_ERROR dopo aver fallito tutto il manager del scaricare tentativi dopo?
Possibilmente. Per poter generare questo tipo di errore, deve essere un problema con l'app che comunica e/o sta tentando di/o terminare il download sul sito.
c'è un modo per ottenere da DownloadManager ulteriori informazioni sull'esatto errore http?
parte l'utilizzo di prova e le catture e la registrazione degli errori nei metodi in questione, qualora la vostra applicazione utilizza il DownloadManager
, e poi prova e in attesa del logcat quando si ottiene questo errore, l'altra opzione sarebbe quella di utilizzare a distanza di una libreria o strumento di terze parti per ottenere la registrazione degli errori e rapporti sugli arresti anomali della tua applicazione distribuita.
Ci sono molti servizi e librerie di terze parti che offrono questo, sto usando una delle rinomate librerie open source come esempio.
Come per l'errore online e la registrazione degli arresti anomali, ACRA è open source e fornisce questa funzionalità. Utilizzato per utilizzare i prodotti Google per archiviare i rapporti liberamente, ma con l'aumentare dell'utilizzo, Google ha ritirato questo supporto, tuttavia esistono funzionalità offerte da ACRA e altri provider oppure è possibile gestire i propri report, ma ciò può comportare costi.
L'implementazione di questo è all'interno del codice dell'app è relativamente semplice, creando una classe che si aggancia all'app estendendo la classe dell'applicazione e avviandosi con l'applicazione.
import org.acra.*;
import org.acra.annotation.*;
@ReportsCrashes(
formUri = "http://www.backendofyourchoice.com/reportpath"
)
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// The following line triggers the initialization of ACRA
ACRA.init(this);
}
}
Avrete anche bisogno di configurare la segnalazione back-end, e ci sono i dettagli forniti su come fare questo, come le opzioni diventano aumentato. Maggiori dettagli possono essere trovati qui, BasicSetup.
Questo blog da The Cheese Factory offre una vista dettagliata di impostare e altre opzioni per errore in linea la segnalazione How to setup ACRA, an Android Application Crash Tracking system, on your own host Application Crash Reports on Android
Questo significherà un aggiornamento per la vostra applicazione, ma si sta andando ad avere a che fare questo comunque da i suoni di esso.
Hai qualche output di logcat catturato con questo errore? –
no, io no. perché sto ricevendo questi errori da altri utenti tramite Google Analytics. –
Sì, ho capito, speravo potessi avere alcuni registri di test. Sto scrivendo una risposta. –