2012-06-23 16 views
5

Necesito tener SIEMPRE un servicio en segundo plano que sincronice mi aplicación Android y un servidor. Sé cómo iniciarlo a través de mi aplicación, pero cuando el Android se apaga, el servicio de fondo morirá.Inicio de servicio en segundo plano cuando Android enciende

¿Cómo puedo hacer para mantener el servicio en segundo plano siempre en ejecución? (Incluso cuando el dispositivo se apaga y luego se enciende ...)

Necesito agregar a los programas de inicio de Android mi servicio en segundo plano. ¿Algún consejo?

Respuesta

15

uso <action android:name="android.intent.action.BOOT_COMPLETED" /> para iniciar su servicio cuando el dispositivo se enciende.

En AndroidManifest.xml:

<receiver android:name=".BootBroadcastReceiver" > 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 

Agregar el permiso en su AndroidManifest.xml como:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"> 
</uses-permission> 

En la parte de código BootBroadcastReceiver:

public class BootBroadcastReceiver extends BroadcastReceiver {  
    static final String ACTION = "android.intent.action.BOOT_COMPLETED"; 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // BOOT_COMPLETED” start Service  
     if (intent.getAction().equals(ACTION)) { 
      //Service  
      Intent serviceIntent = new Intent(context, StartOnBootService.class);  
      context.startService(serviceIntent); 
     } 
    }  
} 

EDIT: si están hablando de dispositivo pantalla encendida/apagada, entonces necesita registrarse <action android:name="android.intent.action.USER_PRESENT" /> y <action android:name="android.intent.action.SCREEN_ON" /> para comenzar su servicio cuando el usuario está presente o la pantalla está encendida.

+0

Recibo un error cuando enciendo mi teléfono móvil ... "La aplicación obliga a ...". No está trabajando. – Frion3L

+0

qué error estás obteniendo ¿puedes editar tu publicación con un error? –

Cuestiones relacionadas