¿Como se puede hacer?
Metiendo en la aplicación un receptor de banda ancha que espere la llegada de un intento que
indique que el dispositivo ha arrancado.
¿Como se mete el receptor de banda ancha?
Podemos hacerlo de manera dinámica:
package es.jodio.elandroid.este
import android.content.*;
public class ReceptorBandaAncha extends android.content.BroadcastReceiver
{
@Override
public void onReceive(Context arg0, Intent arg1)
{
...
}
}
Y habrá que saber a que intento queremos hacer caso. Los intentos son como mensajes a broadcast con un id.
Así que habrá que indicar a que id atenderemos. En este caso sería algo así:
"android.intent.action.BOOT_COMPLETED"
IntentFilter filter = new IntentFilter ("android.intent.action.BOOT_COMPLETED" );
ReceptorBandaAncha miRBA = new ReceptorBandaAncha();
registrarReceiver(miRBA, filter);
Luego para dejar de estar registrados al intento podriamos hacerlo así:
unregisterReceiver (ReceptorBandaAncha);
Tambien se puede hacer de manera estática. De esta manera en cuanto se lanze el intento asociado esta se recibirá esté o no la aplicación en marcha.En el manifest metemos:
Enlaces:
Android developers - BroadcastReceiver:
Android developers - Intent and Intent Filters: