2011-12-11 23 views
10

Desidero inserire una notifica nella barra delle notifiche che avvierà la mia app quando viene premuto. Anche se non ho problemi a farlo, i miei utenti vogliono che la notifica venga visualizzata anche dopo un riavvio. Hanno un'app di un altro venditore che fa questo.notifica Android dopo il riavvio

Tutto ciò che posso trovare indica che l'app deve essere in esecuzione affinché la notifica venga visualizzata. Qualche idea?

+0

So che la risposta di eSniff funzionerà. Ma l'altra app di cui sto parlando NON ha servizi in esecuzione e l'app stessa non è in esecuzione, tuttavia la notifica esiste ancora e toccandola lancia l'app. – miannelle2

+0

hai risolto questo? Mi sto chiedendo allo stesso modo anche – bman

risposta

10

È necessario aggiungere un ricevitore che avvia un servizio dopo un riavvio.

Nel vostro registro manifesto Boot Complete

<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"/> 

Nel ricevitore di boot, avviare un servizio.

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); 
     } 
} 

Ecco un esempio per una classe di servizio in esecuzione in background.

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 Basta usare una terza parte come Urban AirShip, che gestisce tutto ciò che per voi.

+1

u devi aggiungere anche il permesso, per ricevere boot_complete –

+0

@android_hungry Grazie, l'ho appena fatto. – eSniff

+0

benvenuto .. nice 2 c la conferma –

Problemi correlati