videos segundos regresar puedo como anterior adelantar android service android-4.4-kitkat

segundos - En Android 4.4, deslizar la aplicación fuera de las tareas recientes mata de forma definitiva a la aplicación con su servicio. ¿Alguna idea de por qué?



no puedo adelantar videos de youtube android (2)

De este problema, el servicio de primer plano murió al recibir la transmisión después de que la actividad desapareció de 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(); } }

A diferencia de las versiones anteriores, en 4.4, al deslizar la aplicación fuera de tareas recientes mata permanentemente la aplicación junto con su servicio (como forzar-parar) aunque esté ejecutando servicios en segundo plano. Muestra 0 procesos 1 de servicio pero el servicio tampoco funciona. Idealmente, no debería matar el servicio en segundo plano, y no en las versiones anteriores a 4.3. ¿Alguna idea de por qué está sucediendo en 4.4?


Lo tengo. Es un error en 4.4. Intenté esto y funcionó perfectamente bien (aunque es un entrenamiento sucio).

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); }