AppLovinExceptionHandler.java 源代码
package com.applovin.impl.sdk;
import android.os.Process;
import java.lang.Thread;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
public class AppLovinExceptionHandler implements Thread.UncaughtExceptionHandler {
private static final AppLovinExceptionHandler f7519d = new AppLovinExceptionHandler();
private final Set<k> f7520a = new HashSet(2);
private final AtomicBoolean f7521b = new AtomicBoolean();
private Thread.UncaughtExceptionHandler f7522c;
public static AppLovinExceptionHandler shared() {
return f7519d;
}
public void addSdk(k kVar) {
this.f7520a.add(kVar);
}
public void enable() {
if (this.f7521b.compareAndSet(false, true)) {
this.f7522c = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(this);
}
}
@Override
public void uncaughtException(Thread thread, Throwable th) {
for (k kVar : this.f7520a) {
kVar.U0().g("AppLovinExceptionHandler", "Detected unhandled exception");
((EventServiceImpl) kVar.P0()).trackEventSynchronously("paused");
((EventServiceImpl) kVar.P0()).trackEventSynchronously("crashed");
}
try {
Thread.sleep(100L);
} catch (InterruptedException unused) {
}
Thread.UncaughtExceptionHandler uncaughtExceptionHandler = this.f7522c;
if (uncaughtExceptionHandler != null) {
uncaughtExceptionHandler.uncaughtException(thread, th);
} else {
Process.killProcess(Process.myPid());
System.exit(1);
}
}
}