Я создал уведомление с действиями. И для обработки с уведомлением я пользуюсь сервисом. Для каждого действия я создал ожидающее намерения с некоторыми дополнительными. Но в службе, когда я пытался получить дополнительные для намерения, я получил неправильное значение этого. Вот мой код:один сервис за несколько действий по уведомлению
класс NotificationCreator
public Notification createConnectedNotification(){
Context context = TeamlabApplication.getInstance().getApplicationContext();
CharSequence comeToWork = context.getString(R.string.toWork);
CharSequence goFromDinner = context.getString(R.string.fromDinner);
PendingIntent actionComeIntent = createActionSendPendingIntent(context, comeToWork.toString());
Notification.Action.Builder sendMessageToWork =
new Notification.Action.Builder(R.mipmap.icon_notification_action_send, comeToWork, actionComeIntent);
PendingIntent actionDinnerIntent = createActionSendPendingIntent(context, goFromDinner.toString());
Notification.Action.Builder sendMessageFromDinner =
new Notification.Action.Builder(R.mipmap.icon_notification_action_send, goFromDinner, actionDinnerIntent);
PendingIntent activityIntent = createActivityPendingIntent(context);
Notification.Builder builder = new Notification.Builder(context)
.setSmallIcon(R.mipmap.icon_notification_main)
.setContentTitle("Connected to WI-FI")
.setContentText("You connected to work WI-FI. Do you want to send message in teamLab")
.setContentIntent(activityIntent)
.setLights(Color.WHITE, 1000, 1000)
.setAutoCancel(true)
.addAction(sendMessageToWork.build())
.addAction(sendMessageFromDinner.build());
return builder.build();
}
private PendingIntent createActionSendPendingIntent(Context context, String extraMessage){
Intent intent = new Intent(context, NotificationService.class);
intent.putExtra(NotificationService.MESSAGE_EXTRA, extraMessage);
return PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);
}
класс NotficationService
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null) {
AppLog.d("Extra is: " + intent.getStringExtra(MESSAGE_EXTRA));
}
String toWork = "To work" , goFromDinner = "From dinner"
. В уведомлении я нажал acton со String goFromDinner
, но в Extra i есть результат To work
. Как это исправить?