2011-12-11 22 views
10

Quiero poner una notificación en la barra de notificaciones que iniciará mi aplicación cuando se presione. Aunque no tengo problemas para hacer esto, mis usuarios también desean que aparezca la notificación después del reinicio. Tienen una aplicación de otro proveedor que hace esto.notificación de Android después de reiniciar

Todo lo que puedo encontrar indica que la aplicación se debe ejecutar para que se muestre la notificación. ¿Algunas ideas?

+0

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

+0

has resuelto esto? Me pregunto lo mismo también – bman

Respuesta

10

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.

+1

tienes que agregar permiso también, para recibir boot_complete –

+0

@android_hungry Gracias, acabo de hacerlo. – eSniff

+0

bienvenido .. agradable 2 c el acuse de recibo –

Cuestiones relacionadas