2012-09-18 18 views
9

मुझे यहां कुछ याद आ रहा है और मुझे उम्मीद है कि कोई मेरी मदद कर सकता है। मैं निम्नलिखित का उपयोग कर एक अलार्म की स्थापना कर रहा हूँ:अलार्म प्रबंधक प्रसारण रिसीवर को डेटा भेजें

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

    Intent broadcast_intent = new Intent(this, AlarmBroadcastReceiver.class); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, broadcast_intent, 0); 

    broadcast_intent.putExtra("test", "ValueReceived"); //data to pass 
    Date date = someVariable.getDateTime(); 


    long triggerAtTime = date.getTime(); 

    alarmManager.set(AlarmManager.RTC_WAKEUP, triggerAtTime, pendingIntent); 

और प्रसारण रिसीवर निम्नलिखित का उपयोग कर:

public class AlarmBroadcastReceiver extends BroadcastReceiver{ 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     Toast.makeText(context, "Alarm has been received "+intent.getStringExtra("test"), Toast.LENGTH_LONG).show(); 

    } 

} 

हालांकि इरादे रों apperently "खाली"। मैं getStringExtra के लिए शून्य मान देख रहा हूँ। इसलिए प्रसारण रिसीवर को डेटा पास नहीं किया जा रहा है। मैं क्या गलत कर रहा हूं? मैं डेटा कैसे पास कर सकता हूं।

बहुत बहुत

+0

इस पोस्ट को देख http://stackoverflow.com/questions/ 2844274/एकाधिक-कॉल-टू-अलार्ममेनगर-सेट्रेपीटिंग-डिलीवरी-द-ए-इंटेंट-लंबित –

+0

@Theus से जवाब देखें, मुझे लगता है कि आपको जिसकी आवश्यकता है – lemoncodes

उत्तर

17

आप आप इसे PendingIntent को पारित से पहले आशय लिए अतिरिक्त जोड़ने की जरूरत है धन्यवाद:

Intent broadcast_intent = new Intent(this, AlarmBroadcastReceiver.class); 
broadcast_intent.putExtra("test", "ValueReceived"); //data to pass 

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, broadcast_intent, 0); 
+1

मुझे लगता है कि यह आपकी मदद कर सकता है, पहले आपके सामने अतिरिक्त असाइन करें यह लंबित इरादे – lemoncodes

+0

महान है यह महान काम करता है, मैंने किया आदेश वस्तु को एक ही वस्तु के रूप में नहीं जानते हैं। मैं आपका धन्यवाद करता हूँ – Snake

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