Android: ¿Programación de reinicio del servicio bloqueado con un ENORME retraso?

Tengo un servicio en ejecución que el sistema operativo está matando: el problema es que cuando lo mata y programa el reinicio, está programado para reiniciarse más de una hora más tarde. Este servicio mantiene dos receptores para cambios de conexión bluetooth, por lo que necesito reiniciar mucho más rápido en lugar de permanecer en el estado "Reinicio" durante más de una hora.

Aquí hay un recorte del registro:

I/ActivityManager( 1064): No longer want com.deadbeat.bta (pid 25455): hidden #17
W/ActivityManager( 1064): Scheduling restart of crashed service com.deadbeat.bta/com.deadbeat.btalib.BTService in 3600210ms`

Después de que transcurran estos 3600 segundos, simplemente lo matará y reprogramará nuevamente durante 2 horas más tarde, y así sucesivamente. Cuando esto sucede, parece que no se llama a onDestroy (), onCreate () y onStartCommand (). Iniciar la actividad principal reiniciará con éxito el servicio y todo estará bien durante un par de horas hasta que esto comience a suceder nuevamente.

sto comenzó a suceder cuando hice un cambio que requiere que pase extras cuando se inicia el servici

Aquí está mi onStartCommand y onCreate si eso ayuda ...

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d("BTA", ">>> onStartCommand()");
    setIntent(intent);

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        setGlobals((Globals) extras.getSerializable("Globals"));
    }
    if (getGlobals() == null) {
        Log.e("BTA", "!!! Call an ambulance!!");
    }
    Log.i(getGlobals().getLogPrefix(), ">>> Service starting up");

    setWorker(new BTAWorker(this, getGlobals()));
    getWorker().doLog("Service Worker Set and Active");

    return START_REDELIVER_INTENT;
}

@Override
public void onCreate() {
    // Create
    super.onCreate();
    Log.d("BTA", ">>> onCreate()");
    // Register BroadcastReceiver with connect and disconnect actions
    IntentFilter intentToReceiveFilter = new IntentFilter();
    intentToReceiveFilter.addAction("android.bluetooth.device.action.ACL_CONNECTED");
    intentToReceiveFilter.addAction("android.bluetooth.device.action.ACL_DISCONNECTED");
    registerReceiver(this.mIntentReceiver, intentToReceiveFilter, null, this.mHandler);
    Log.d("BTA", ">>> Bluetooth State Receiver registered");
    Log.d("BTA", ">>> Intent = " + getIntent());
}

Cualquier consejo sobre lo que estoy haciendo mal sería muy apreciado. He buscado, pero no encontré nada que parezca estar relacionado con este largo retraso en el reinicio. ¿La actividad principal tiene que estar activa paraSTART_REDELIVER_INTENT ¿trabajar? (Por lo tanto, cuando se limpia mi actividad principal, ya no puedo reiniciar el servicio sin volver a abrir la actividad principal), ¿o está sucediendo algo más?

Respuestas a la pregunta(1)

Su respuesta a la pregunta