আমি আমার বিজ্ঞপ্তি থেকে আমার ক্রিয়াকলাপে পরামিতিগুলি প্রেরণের কোনও উপায় খুঁজে পেতে পারি।
আমার একটি পরিষেবা রয়েছে যা একটি বিজ্ঞপ্তি তৈরি করে। ব্যবহারকারী বিজ্ঞপ্তিতে ক্লিক করলে আমি কিছু বিশেষ পরামিতি সহ আমার মূল ক্রিয়াকলাপটি খুলতে চাই। যেমন একটি আইটেম আইডি, যাতে আমার ক্রিয়াকলাপটি একটি বিশেষ আইটেমের বিশদ দর্শন লোড করতে এবং উপস্থাপন করতে পারে। আরও সুনির্দিষ্ট, আমি কোনও ফাইল ডাউনলোড করছি এবং ফাইলটি ডাউনলোড করার পরে আমি বিজ্ঞপ্তিটির একটি অভিপ্রায় রাখতে চাই যে এটি ক্লিক করলে এটি আমার কার্যকলাপটি একটি বিশেষ মোডে খুলবে। আমি 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") );
}
অতিরিক্তগুলি সর্বদা নাল থাকে এবং আমি কখনই আমার লগে কিছু পাই না।
বিটিডব্লিউ ... onCreate
কেবল তখনই চালানো হয় যখন আমার ক্রিয়াকলাপ শুরু হয়, যদি আমার ক্রিয়াকলাপটি ইতিমধ্যে শুরু হয়ে থাকে তবে আমি অতিরিক্তগুলিও সংগ্রহ করতে এবং আমার প্রাপ্ত আইটেম_আইড অনুসারে আমার ক্রিয়াকলাপ উপস্থাপন করতে চাই।
কোন ধারনা?
PendingIntent.getActivity()
পতাকা সহ কল করতে হবেPendingIntent.FLAG_UPDATE_CURRENT
, অন্যথায় প্রতিটি বিজ্ঞপ্তির জন্য একই অতিরিক্তগুলি পুনরায় ব্যবহার করা হবে।