En android 4.4, eliminar aplicaciones de tareas recientes mata permanentemente la aplicación con su servicio. ¿Alguna idea de por qué?

A diferencia de las versiones anteriores, en 4.4, eliminar aplicaciones de tareas recientes mata de forma permanente a la aplicación junto con su servicio (como detener la fuerza) aunque esté ejecutando servicios de fondo. Muestra 0 procesos 1 servicio pero el servicio también no funciona. Idealmente no debería matar el servicio de fondo, y no lo hace en versiones anteriores a 4.3. ¿Alguna idea de por qué está sucediendo en 4.4?

Lo tengo. Es un error en 4.4. He intentado esto y funcionó perfectamente bien (su un entrenamiento sucio sin embargo).

Simplemente anule este método::

public void onTaskRemoved(Intent rootIntent) { Log.e("FLAGX : ", ServiceInfo.FLAG_STOP_WITH_TASK + ""); Intent restartServiceIntent = new Intent(getApplicationContext(), this.getClass()); restartServiceIntent.setPackage(getPackageName()); PendingIntent restartServicePendingIntent = PendingIntent.getService( getApplicationContext(), 1, restartServiceIntent, PendingIntent.FLAG_ONE_SHOT); AlarmManager alarmService = (AlarmManager) getApplicationContext() .getSystemService(Context.ALARM_SERVICE); alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePendingIntent); super.onTaskRemoved(rootIntent); } 

De este problema Servicio de primer plano muerto al recibir radiodifusión después de acitivty borrado en la lista de tareas

Aquí está la solución

En el servicio de primer plano:

 @Override public void onTaskRemoved( Intent rootIntent ) { Intent intent = new Intent( this, DummyActivity.class ); intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); startActivity( intent ); } 

En el manifiesto:

 <activity android:name=".DummyActivity" android:theme="@android:style/Theme.NoDisplay" android:enabled="true" android:allowTaskReparenting="true" android:noHistory="true" android:excludeFromRecents="true" android:alwaysRetainTaskState="false" android:stateNotNeeded="true" android:clearTaskOnLaunch="true" android:finishOnTaskLaunch="true" /> 

En DummyActivity.java:

 public class DummyActivity extends Activity { @Override public void onCreate( Bundle icicle ) { super.onCreate( icicle ); finish(); } } 
  • ¿Hace SAF (Storage Access Framework) resolver el problema de la tarjeta SD WRITE en Android 4.4 (KitKat)?
  • Ejecutar KitKat Virtual Device en la CPU Intel
  • Android PdfDocument dañado cuando se guarda en un almacenamiento externo
  • Desactivar / ocultar completamente la barra de estado en 4.4.2
  • ¿Android KitKat permite que los dispositivos compatibles con Bluetooth LE actúen como un dispositivo periférico?
  • Android KitKat securityException al intentar leer de MediaStore
  • Mylib.so tiene reubicaciones de texto. Esto es perder la memoria y es un riesgo de seguridad. Por favor, arregla
  • ADT 22.3 (android 4.4) - obtener error "Después de la creación de la escena, #init () debe ser llamado"
  • Las instrucciones de modo inmersivo vuelven a aparecer cada vez que el dispositivo entra en este modo
  • Ejecutar un tarro multidex independiente en Android Kitkat
  • Comprobar si la aplicación está en segundo plano
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.