मैं अपनी अधिसूचना से अपनी गतिविधि के लिए पैरामीटर भेजने का एक तरीका खोज सकता हूं।
मेरे पास एक सेवा है जो एक अधिसूचना बनाती है। जब उपयोगकर्ता अधिसूचना पर क्लिक करता है तो मैं अपनी मुख्य गतिविधि को कुछ विशेष मापदंडों के साथ खोलना चाहता हूं। एक आइटम आईडी, इसलिए मेरी गतिविधि एक विशेष आइटम विवरण दृश्य को लोड और प्रस्तुत कर सकती है। अधिक विशिष्ट, मैं एक फ़ाइल डाउनलोड कर रहा हूं, और जब फ़ाइल डाउनलोड हो जाती है, तो मैं चाहता हूं कि अधिसूचना एक आशय है कि जब इसे क्लिक किया जाए तो यह मेरी गतिविधि को एक विशेष मोड में खोलता है। मैंने putExtra
अपने इरादे पर उपयोग करने की कोशिश की है , लेकिन खिचड़ी भाषा इसे निकालने लगती है, इसलिए मुझे लगता है कि मैं इसे गलत कर रहा हूं।
मेरी सेवा से कोड जो अधिसूचना बनाता है:
// construct the Notification object.
final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());
final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
contentView.setImageViewResource(R.id.image, R.drawable.icon);
contentView.setTextViewText(R.id.text, tickerText);
contentView.setProgressBar(R.id.progress,100,0, false);
notif.contentView = contentView;
Intent notificationIntent = new Intent(context, Main.class);
notificationIntent.putExtra("item_id", "1001"); // <-- HERE I PUT THE EXTRA VALUE
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notif.contentIntent = contentIntent;
nm.notify(id, notif);
मेरी गतिविधि का कोड जो अधिसूचना से अतिरिक्त पैरामीटर लाने की कोशिश करता है:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle extras = getIntent().getExtras();
if(extras != null){
Log.i( "dd","Extra:" + extras.getString("item_id") );
}
एक्स्ट्रा हमेशा शून्य होता है और मुझे अपने लॉग में कभी कुछ नहीं मिलता है।
Btw ... onCreate
केवल तभी चलाया जाता है जब मेरी गतिविधि शुरू होती है, अगर मेरी गतिविधि पहले से ही शुरू हो जाती है तो मैं एक्स्ट्रा इकट्ठा करना चाहता हूं और मुझे प्राप्त होने वाली वस्तु_ के अनुसार अपनी गतिविधि प्रस्तुत करना है।
कोई विचार?
PendingIntent.getActivity()
ध्वज के साथ कॉल करना होगाPendingIntent.FLAG_UPDATE_CURRENT
, अन्यथा हर सूचना पर उसी एक्स्ट्रा का पुन: उपयोग किया जाएगा।