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?
- Evitar el diálogo de usuario cuando se enlaza con el dispositivo BLE utilizando PIN en la API más reciente (Lollipop)
- FitsSystemWindows y acolchado adicional en kitkat
- Android 4.4 errores api http?
- Detector paso a paso Android 4.4 y contador
- ¿Cómo se puede utilizar ViewPropertyAnimator para establecer Width a un valor específico
- No se puede encontrar la imagen del sistema en Emulator en Android Studio con API de Google
- GIF transparente en Android ImageView
- Color de estilo CSS ineficaz en estrellas (& # 9733;) en Samsung con Android 4.4 KitKat
- Carpeta de Android KitKat 4.4 en la tarjeta sd
- Obtenga de forma fiable la altura de la barra de estado para resolver problemas de navegación translúcida de KitKat
- Android 4.3+, android: textColorHint no funciona, el color de pista es siempre blanco
- Problemas con las fuentes en android 4.4
- ¿Cuál es el concepto detrás de "Lost RAM" que aparece en el meminfo de Dumpsys?
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(); } }
- Android: acceder a la base de datos SQLite a través del proveedor de contenido o implementar DAO?
- Cómo convertir .jar o .class a .dex?