2011-01-29 8 views
5

मैं एक ऐसा इरादा प्रसारित कर रहा हूं जो प्रसारण रिसीवर द्वारा प्राप्त किया जाएगा, क्योंकि आवेदन अभी भी चल रहा है और अलार्म सेवा द्वारा नया इरादा निकाल दिया गया है लेकिन रिसीवर पिछले इरादे दिखा रहा है मूल्य। दस्तावेज़ों के अनुसार रिसीवर रिसीवर() पर लौटने के बाद सक्रिय नहीं है, इसलिए रिसीवर को अगले इरादे मान दिखाना चाहिए जो अलार्म सेवा द्वारा निकाल दिया गया है, लेकिन ऐसा नहीं हो रहा है, क्या कोई भी सही दृष्टिकोण बता सकता है।रिसीवर प्रसारित करने के नए इरादे को पिछले इरादे से अतिरिक्त मूल्य

इस आशय का प्रसारण करने गतिविधि से है:

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

यह वह जगह है 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(); 
       } 
यहाँ

टोस्ट आईडी जो alarmservice से पहला प्रसारण द्वारा भेजा जाता है, तब भी जब दूसरा आशय alarmservice से निकाल दिया जाता है पता चलता (दूसरी बार अलार्म बंद हो जाता है)

+0

क्या आप एक कोड स्निपेट पोस्ट कर सकते हैं? –

+0

मैं यहां कुछ ऐसा कर रहा हूं !!! http://stackoverflow.com/questions/14571564/android-pendingintent-extras-not-received-by-broadcastreceiver/14612215#14612215 – toobsco42

उत्तर

4

उत्तर मिला, अलार्म सेवा के लिए लंबित इरादे सेट करते समय ध्वज लंबित INTent.FLAG_CANCEL_CURRENT को सेट करना होगा ...

+0

@om धन्यवाद यह मेरे लिए काम करता है –

+0

लंबित INTent.FLAG_UPDATE_CURRENT भी काम कर रहा है – Punithapriya