Как исправить 'Вызванное android.os.DeadObjectException'? - PullRequest
0 голосов
/ 06 февраля 2019

Я недавно столкнулся с этой ошибкой в ​​своем приложении, где говорится, что DeadObjectException, такого никогда не было, и я получил уведомление об этом в Fabric (приложение установлено на десятках тысяч устройств).Это произошло на Galaxy J7 pop с ОС версии 6.

Вот журнал из Fabric:

Unable to stop service com.XXX.XXX.XXX.XXXX.services.IndoorOutdoorService@2c92060: java.lang.RuntimeException: Failure from system
android.app.ActivityThread.handleStopService

android.os.BinderProxy.transactNative (Binder.java)
android.os.BinderProxy.transact (Binder.java:503)
android.app.ActivityManagerProxy.broadcastIntent (ActivityManagerNative.java:3633)
android.app.ContextImpl.sendBroadcast (ContextImpl.java:847)
android.content.ContextWrapper.sendBroadcast (ContextWrapper.java:410)
com.XXX.XXX.XXX.XXXX.services.IndoorOutdoorService.broadcastShutdown (IndoorOutdoorService.java:230)
com.XXX.XXX.XXX.XXXX.services.IndoorOutdoorService.onDestroy (IndoorOutdoorService.java:59)
android.app.ActivityThread.handleStopService (ActivityThread.java:4165)
android.app.ActivityThread.access$2500 (ActivityThread.java:231)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1931)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:148)
android.app.ActivityThread.main (ActivityThread.java:7422)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)

Я посмотрел на строки в соответствии с журналом, но я не понимаю, в чем дело.

@Override
    public void onDestroy() {
        IndoorOutdoorLogger.d(IndoorOutdoorService.this, TAG, "IndoorOutdoorService was destroyed.");
        cancelManager();
        DetectionResult.saveDetectionTimeToCache(IndoorOutdoorService.this, System.currentTimeMillis());
        IndoorOutdoorLogger.remove(logListener);
        broadcastShutdown();
        this.releaseWakeLock();
        super.onDestroy();
    }

// Broadcast a detection to the IO services.
private void broadcastShutdown() {
    Intent i = new Intent(SHUTDOWN);
    sendBroadcast(i);
}

Что может быть причиной этой ошибки и как я могу предотвратить ее повторение?

...