10

मैं सेवा शुरू करने के लिए AlarmManager का उपयोग करता हूं। जब मैं AlarmManager सेट करता हूं तो मैं PendingIntent का उपयोग करता हूं और एक अद्वितीय अनुरोध कोड का उपयोग करता हूं जो मेरे डेटाबेस में एक आईडी पंक्ति के बराबर है।लंबित इंटेंटेंट अनुरोध प्राप्त करें कोड

PendingIntent pendingIntent = PendingIntent.getBroadcast(SettingsActivity.this, 
          lecture.getId(), myIntent, 0); 

जब मैं शुरू होता हूं तो मैं अपनी आईडी में उस आईडी को कैसे पुनर्प्राप्त कर सकता हूं? मुझे मूल रूप से अनुरोध कोड पैरामीटर की आवश्यकता है। मैं अपने आईडी से डेटा पुनर्प्राप्त करने और इसे अधिसूचना में दिखाने के लिए उस आईडी का उपयोग करना चाहता हूं। मैंने सभी चीजें लागू की हैं, मुझे बस उस अनुरोध कोड की आवश्यकता है। क्या इसे प्राप्त करना संभव है?

धन्यवाद

उत्तर

14

आप अपने myIntent के अतिरिक्त में lecture.getId() डाल करने के लिए की जरूरत है। जावाडोक requestCode के अनुसार अभी तक उपयोग नहीं किया गया है।

// store id 
myIntent.putExtra("id", lecture.getId()); 

// read id or -1, if there is no such extra in intent 
int id = myIntent.getIntExtra("id", -1); 
+0

लेकिन ऐप की हत्या होने पर भी मुझे उस आईडी की आवश्यकता है। जब कोई ऐप मारे जाते हैं तो अतिरिक्त डेटा हटा दिया जाता है। जब सेवा में अतिरिक्त आईडी शून्य होगी, तो मैं सेवा पर डेटाबेस से आवश्यक डेटा कैसे प्राप्त कर सकता हूं? या मैं इस पर गलत हूँ? – Aksiom

+1

@ एक्सीओम 'लंबित इंटेन्टेंट' निकाल दिए जाने पर अतिरिक्त होगा, इसमें मारने की प्रक्रिया के साथ इसका कोई लेना-देना नहीं है, 'लंबित इंटेंट' एक ऐसा इरादा है जो ऐप से स्वतंत्र रूप से चलता है, भले ही आपका ऐप नहीं चल रहा हो !! –

+0

@Aksiom लेकिन जब डिवाइस बूट हो जाता है (पुनरारंभ होता है) 'लंबित इंटेन्टेंट' हटा दिया जाएगा तो ** ** ** बूट पर ** आपको 'अलार्ममेनगर' –

संबंधित मुद्दे