【发布时间】:2015-03-02 07:47:40
【问题描述】:
我是安卓新手。我正在开发触发通知的应用程序。当我在状态栏上有多个通知并单击第二个时,将打开第一个。我只能获得第一个通知的 ID。如何选择我单击的特定通知 ID。这是我的代码
save.setOnClickListener(new OnClickListener() {
for(int i=1;i<gpPeople.size();i++)
{
Context ctx = SetReminder.this.getApplicationContext();
Intent intent = new Intent(SetReminder.this, AlarmReciever.class);
intent.putExtra("contactName",gpPeople.get(i));
intent.putExtra("id", id);//unique notification Id
PendingIntent objPendingIntent = PendingIntent.getBroadcast(SetReminder.this, i, intent, 0);
AlarmManager alarmManager = (AlarmManager)ctx.getSystemService(ctx.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, StartTime, cal.getTimeInMillis(), objPendingIntent);
}
}
AlarmReciever.java
public void onReceive(final Context context, Intent intent) {
name= extras.getString("contactName");
String id= extras.getString("id");
notificationIdentifier= Integer.parseInt(id);
Intent intent1 = new Intent(context, Notifications.class);
PendingIntent objPendingIntent = PendingIntent.getActivity(context, 0, intent1, 0);
Intent intent2= new Intent(context, CancelNotification.class);
intent2.putExtra("id", notificationIdentifier);
PendingIntent objPendingCancel = PendingIntent.getActivity(context, 0, intent2, 0);
Intent intent3= new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phones.get(0).trim()));
PendingIntent objPendingCall = PendingIntent.getActivity(context, 0, intent3, 0);
Intent intent4= new Intent(context, Snooze.class);
intent4.putExtra("id", notificationIdentifier);
intent4.putExtra("name", name);
PendingIntent objPendingSnooze = PendingIntent.getActivity(context, 0, intent4, 0);
notification = new Notification.Builder(context).
setContentTitle(notificationTitle).
setContentText(notificationMessage+" "+name).
setAutoCancel(true).setSmallIcon(icon).
setWhen(System.currentTimeMillis()).
addAction(android.R.drawable.ic_menu_call,"call",objPendingCall).
addAction(android.R.drawable.ic_menu_delete, "Cancel", objPendingCancel).
addAction(android.R.drawable.ic_lock_idle_alarm,"Snooze",objPendingSnooze).
setContentIntent(objPendingIntent).
build();
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notification.defaults |= Notification.DEFAULT_LIGHTS;
final NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(notificationIdentifier, notification);
}
当我点击任何一个通知的呼叫按钮时,只会操作第一个通知。请帮助我获取特定通知的 ID。提前致谢
【问题讨论】:
标签: android notifications alarmmanager