我有以下代码:
public void sendNewNotification (Booking updateBooking) {
String msg;
if (updateBooking.getJobStatus () == Booking.eeJob_OnRoute) {
msg = "Your driver has been dispatched.";
} else if (updateBooking.getJobStatus () == Booking.eeJob_POB) {
msg = "Your driver has arrived.";
} else if (updateBooking.getJobStatus () == Booking.eeJob_Complete) {
Variables.driverrated = false;
msg = "Your booking has been completed. Thank you for using " + Variables.setting.getCompanysName () + ".";
} else if (updateBooking.getJobStatus () == Booking.eeJob_NoShow) {
msg = "Unfortunately your driver was unable locate you. Please call the office on " + Variables.setting.getCompanytelephone () + ".";
} else if (updateBooking.getJobStatus () == Booking.eeJob_Cancelled) {
msg = "Your booking has been cancelled. Please call the office on " + Variables.setting.getCompanytelephone () + " if this is incorrect.";
} else {
return;
}
PendingIntent detailsIntent = PendingIntent.getActivity (this, 0, new Intent (this, HomeActivity.class)
.putExtra ("booking", updateBooking)
.putExtra ("track", false),
PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent trackingIntent = PendingIntent.getActivity (this, 0, new Intent (this, HomeActivity.class)
.putExtra ("booking", updateBooking)
.putExtra ("track", true),
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder (this);
builder.setAutoCancel (true);
builder.setDefaults (Notification.DEFAULT_ALL);
builder.setWhen (System.currentTimeMillis ());
builder.setContentTitle (Variables.setting.getCompanysName () + " - booking update");
builder.setSmallIcon (R.drawable.notification);
builder.setTicker (Variables.setting.getCompanysName () + " - booking update");
builder.setPriority (NotificationCompat.PRIORITY_HIGH);
builder.setContentText (msg);
builder.setContentIntent (trackingIntent);
builder.addAction (R.drawable.documents_32px, "DETAILS", detailsIntent);
if (updateBooking.getJobStatus () != Booking.eeJob_Complete) {
builder.addAction (R.drawable.notification, "TRACK", trackingIntent);
} else {
builder.addAction (R.drawable.profile_32px, "RATE", detailsIntent);
}
NotificationManager manager = (NotificationManager) getSystemService (NOTIFICATION_SERVICE);
manager.notify (getTaskId (), builder.build ());
}
我的问题是在onCreate函数中,我有以下两行代码:
m_updateBooking = (Booking) getIntent ().getSerializableExtra ("booking");
m_TrackDriver = (Boolean) getIntent ().getSerializableExtra ("track");
m\u updateBooking
工作完美无瑕。但是m\u TrackDriver总是正确的。不管我按什么按钮。有人能解释为什么会这样吗?
提前感谢您的帮助。
由于您的意图对两个待决内容都有相同的操作,因此您需要指定不同的请求代码,否则使用当前的更新标志,待决内容中的额外内容将被意图中的新额外内容替换。因此,您总是将其设置为true,因为它位于请求的最后一个挂起内容中。
这个StackOveflow答案详细解释了PendingIntent
是如何工作的。
要解决您的问题,请像这样更改您的代码:
PendingIntent detailsIntent = PendingIntent.getActivity (this, 0, new Intent (this, HomeActivity.class)
.putExtra ("booking", updateBooking)
.putExtra ("track", false),
PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent trackingIntent = PendingIntent.getActivity (this, 1, new Intent (this, HomeActivity.class)
.putExtra ("booking", updateBooking)
.putExtra ("track", true),
PendingIntent.FLAG_UPDATE_CURRENT);
我正在Android Studio中构建一个库,并希望有一个名为性能的布尔值设置为true。但是,它返回false,我需要修复它。 我按照正常步骤创建字段。当,但java代码执行时就好像它是假的一样。库构建变量为,应用程序变量为。 下面是Java代码,它在库文件中将
我有一个项目列表,我在网页上显示其内容。每个项目都有一个布尔值来表示它是否已被选中。下面给出了. xhtml文件和后备bean项目。问题是每次我选择或取消选择网页中的布尔按钮时,它总是将后备bean中的布尔属性设置为false。 .xhtml Project.java(背豆)
问题内容: 我遇到了这种语法: 这个带有两个点的语法是什么? 在哪里可以找到有关它的信息? 它仅适用于布尔值还是以其他不同方式实现? 问题答案: 是条件运算符。(不只是一部分,整个方法参数是示例中条件运算符的一种用法。) 它通常被称为三元运算符,但这只是其本质的一个方面-具有三个操作数- 而不是其名称。如果在Java中引入了另一个三元运算符,则该术语将变得模棱两可。之所以称为条件运算符,是因为它有
我有一个 Spring 注释类 ,其布尔字段为: 这个类被导入到另一个Spring注释类中,如下所示: 在测试用例中通过Spring上下文实例化类时,容器无法将字符串解析为布尔字段<code>mappingsEnabled</code>,我得到: 关于我错过了什么的任何线索?
问题内容: 我有一个pojo类,其中标志之一是Boolean类型。 当此属性获取非布尔值(不是fastxml时)时,杰克逊会自动将输入值转换为。调试了几个小时后,我发现这是在setter方法中发生的。 如果此属性的输入值为非布尔值,我想传递自定义消息。我已经编写了自己的注释来验证此属性的输入值,并返回自定义消息(如果它不是布尔值,但是杰克逊在检查自定义验证器之前将其绑定)。 使用杰克逊版本>>>
但是这个代码不起作用。编译器说 我在试图理解代码的问题是什么。我认为将返回一个布尔值流,我可以通过收集这些值。