Debe agregar un receptor que inicie un servicio después de reiniciar.
En el registro de su manifiesto de arranque completo
<service android:name="com.meCorp.service.MeCorpServiceClass"/>
...
<receiver android:name="com.meCorp.receiver.MyRebootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
...
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
En su receptor de arranque, poner en marcha un servicio.
public class MyRebootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent(context, MeCorpServiceClass.class);
serviceIntent.putExtra("caller", "RebootReceiver");
context.startService(serviceIntent);
}
}
Aquí hay un ejemplo de una clase de servicio que se ejecuta en segundo plano.
public class MeCorpServiceClass extends IntentService{
@Override
protected void onHandleIntent(Intent intent){
String intentType = intent.getExtras().getString("caller");
if(intentType == null) return;
if(intentType.Equals("RebootReceiver"))
//Do reboot stuff
//handle other types of callers, like a notification.
}
}
O simplemente use un tercero como Urban AirShip, que maneja todo eso por usted.
Sé que la respuesta de eSniff funcionará. Pero la otra aplicación de la que estoy hablando NO tiene servicios en ejecución y la aplicación en sí no se está ejecutando, sin embargo, la notificación aún existe y al tocarla se inicia la aplicación. – miannelle2
has resuelto esto? Me pregunto lo mismo también – bman