Ejecutar solo un servicio en segundo plano al iniciar la aplicación
Quiero comenzar solo para iniciar un servicio cuando se inicie mi aplicación. Aquí está mi código:
Mi clase de servicio:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("LocalService", "Received start id " + startId + ": " + intent);
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
Mi clase de BroadcastReceiver:
public class MyServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, MyService.class);
context.startService(service);
}
}
Y mi archivo AndroidManifest:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<service
android:name=".MyService"
android:label="@string/app_name"
android:enabled="true"
android:process=":my_process" >
</service>
<receiver
android:name=".MyServiceReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
</application>
Quiero iniciar mi servicio cuando se inicia la aplicación (se instala la primera vez) y cuando se inicia el dispositivo.
PD Si el código es correcto, ¿quizás deba configurar una configuración particular para el botón "ejecutar" del eclipse? Si intento crear una nueva configuración, no puedo seleccionar nada en "Iniciar acción" porque mi aplicación no tiene actividad y tengo que seleccionar "No hacer nada".
Gracias