2012-03-22 4 views
13

रद्द करना एक AppWidgetProvider में एक PendingIntent का उपयोग कर, मैं निम्नलिखित कोड का उपयोग कर रहा:एक PendingIntent

views.setOnClickPendingIntent(viewId, 
       PendingIntent.getBroadcast(context, 0, intent, 
       PendingIntent.FLAG_UPDATE_CURRENT)); 

तो वर्तमान में कोई संदर्भ PendingIntent getBroadcast विधि द्वारा वापस करने के लिए रखा है। एक विशिष्ट स्थिति में अब मैं लंबित इंटेंन्ट को रद्द करना चाहता हूं। क्या व्यू से लंबित इन्टेंट वापस पाने का कोई तरीका है? या लंबित इंटेन्टेंट की रद्द विधि को बाद में संदर्भित करने का एकमात्र तरीका है?

+0

देखें http://stackoverflow.com/a/4350149/165674 –

+0

धन्यवाद, धीरज! मैं अभी जल्दबाजी में हूं, लेकिन मैं इसे देख लूंगा और इसे आज़माएं। चीयर्स! –

उत्तर

29

आप कहाँ यह रद्द करना चाहते हैं, तो आप (कहीं अपने कोड बेस में सब) निम्नलिखित करना होगा:

PendingIntent.getBroadcast(context, 0, intent, 
          PendingIntent.FLAG_UPDATE_CURRENT).cancel(); 

जहां intent ही एक के ऊपर अपने कोड में संदर्भित के रूप में है। PendingIntent.getBroadcast(...)PendingIntent.FLAG_UPDATE_CURRENT का उपयोग कर पहले से बनाए गए मौजूदा व्यक्ति का संदर्भ वापस कर देगा, या यदि कोई वर्तमान में मौजूद नहीं है तो उसे एक बना देगा।

+0

आह, वास्तव में यह चाल है। :) धन्यवाद! –

+2

मिलता है ब्रॉडकास्ट एक ही वस्तु * संदर्भ * वापस लौटाता है अगर मैं इस ध्वज का उपयोग करता हूं? –

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