ฉันสามารถหาวิธีส่งพารามิเตอร์ไปยังกิจกรรมของฉันได้จากการแจ้งเตือนของฉัน
ฉันมีบริการที่สร้างการแจ้งเตือน เมื่อผู้ใช้คลิกที่การแจ้งเตือนฉันต้องการเปิดกิจกรรมหลักของฉันด้วยพารามิเตอร์พิเศษบางอย่าง เช่นรหัสรายการดังนั้นกิจกรรมของฉันสามารถโหลดและนำเสนอมุมมองรายละเอียดรายการพิเศษ เจาะจงมากขึ้นฉันกำลังดาวน์โหลดไฟล์และเมื่อดาวน์โหลดไฟล์ฉันต้องการให้การแจ้งเตือนมีความตั้งใจที่เมื่อคลิกมันจะเปิดกิจกรรมของฉันในโหมดพิเศษ ฉันพยายามใช้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
มิฉะนั้นความพิเศษอื่น ๆ จะถูกนำมาใช้ซ้ำสำหรับการแจ้งเตือนทุกครั้ง