2016-08-13 1 views
0

In einer App die ich entwickle, bin ich mit Google Analytics wie so abgefangene Ausnahmen zu verfolgen:Wie erzwinge normale Crash-Verhalten bei Verwendung von setDefaultUncaughtExceptionHandler()?

// ...after setting up Google Analytics... 
Thread.setDefaultUncaughtExceptionHandler(new AnalyticsExceptionHandler(Thread.getDefaultUncaughtExceptionHandler())); 

Und dies ist der Handler, die AnalyticsExceptionHandler Klasse:

public class AnalyticsExceptionHandler implements UncaughtExceptionHandler 
{ 
    // Private 
    private UncaughtExceptionHandler _defaultHandlerRef; 

    public AnalyticsExceptionHandler(UncaughtExceptionHandler defaultHandlerRef) 
    { 
     this._defaultHandlerRef = defaultHandlerRef; 
    } 

    @Override 
    public void uncaughtException(Thread t, Throwable e) 
    { 
     // ...track and send the exception to Google Analytics... 
     _defaultHandlerRef.uncaughtException(t, e); 
    } 
} 

Thing ist, die App stürzt eigentlich nie ab, sie friert einfach ein. Wenn ich die setDefaultUncaughtExceptionHandler() Zeile entfernen, stürzt die App normal ab.

Mache ich etwas in dem obigen Code falsch, indem ich es an den vorherigen Standard-Handler übergebe?

+0

Werfen Sie einen Blick auf https://stackoverflow.com/questions/46070393/replacing-default-uncaught-exception-handler-to-avoid-crash-dialog es Ihnen helfen könnte –

Antwort

0

Warum nicht die Ausnahme erneut werfen?

public void uncaughtException(Thread t, Throwable e) 
{ 
    // ...track and send the exception to Google Analytics... 
    _defaultHandlerRef.uncaughtException(t, e); 

    throw e; 
} 
Verwandte Themen