2011-01-29 10 views
5

Wysyłam intencję, która zostanie odebrana przez odbiornik, ponieważ aplikacja nadal działa i nowe zamiary są uruchamiane przez usługę alarmową, ale odbiornik pokazuje poprzednie zamiary wartość. Jak na docs odbiornik broadcast nie jest już aktywny po powrocie onReceive(), więc odbiornik powinien pokazać następne wartości intencji, które są uruchamiane przez usługę alarmową, ale tak się nie dzieje, czy ktoś może powiedzieć prawidłowe podejście.Wysłanie nowego zamiaru do odbiornika transmisji daje dodatkowe wartości z poprzedniego zamiaru

To od aktywności na nadawanie zamiar:

Intent intent = new Intent(SCH_ALARM_ACTION); 
    intent.setClass(getBaseContext(), SchAlarmReciever.class); 
    intent.putExtra("id", maxId); 
    PendingIntent pi = PendingIntent.getBroadcast(getBaseContext(), 
       0, 
       intent, 
       0); 
    alarmManager.set(AlarmManager.RTC, gc.getTimeInMillis(), pi); 

Jest to broadreceiver:

@Override 
    public void onReceive(Context context, Intent data) 
       { 
     // TODO Auto-generated method stub 

     if(data.getAction().equals(SchedulerActivity.SCH_ALARM_ACTION)){ 

     int id = data.getIntExtra("id",0); 
     Toast.makeText(context, "in receiver "+String.valueOf(id), Toast.LENGTH_LONG).show(); 
       } 

tutaj tosty pokazuje identyfikator, który jest wysyłany przez pierwszy audycji z alarmservice nawet gdy drugi intencją jest zwolniony z alarmservice (drugi alarm czasu)

+0

Czy możesz opublikować fragment kodu? –

+0

Robię coś podobnego TUTAJ !!! http://stackoverflow.com/questions/14571564/android-pendingintent-extras-not-received-by-broadcastreceiver/14612215#14612215 – toobsco42

Odpowiedz

4

Otrzymałem odpowiedź, ustawiłem flagę PendingIntent.FLAG_CANCEL_CURRENT podczas ustawiania oczekującego celu dla AlarmService ...

+0

@om Dzięki to działa dla mnie –

+0

PendingIntent.FLAG_UPDATE_CURRENT również działa – Punithapriya

Powiązane problemy