LocalNotification setId() 行为 [codenameone]
LocalNotification setId() behavior [codenameone]
LocalNotification Id 应该显示在 ToastBar 中吗?
我创建了本地通知:
LocalNotification ln = new LocalNotification();
ln.setId("geofence entered");
ln.setAlertTitle("Welcome");
ln.setAlertBody("Please proceed to the building");
Display.getInstance().scheduleLocalNotification(ln,
System.currentTimeMillis() + 1000, LocalNotification.REPEAT_NONE);
它正确触发并向我显示了带有正确标题和 Body 的通知。但是,如果我单击它,当它打开应用程序时 - Id
“已输入地理围栏”会显示在 ToastBar
中。如果我删除 .setId("geofence entered")
,则不会显示通知并且出现错误:
2021-07-13 17:15:40.009 21809-21809/io.jarvisapp.app E/Codename One: background location error
java.lang.IllegalArgumentException: Notification ID must be set
at com.codename1.ui.Display.scheduleLocalNotification(Display.java:4804)
at io.jarvisapp.app.geofence.GeofenceListenerImpl.onEntered(GeofenceListenerImpl.java:131)
第 131 行是 Display.getInstance().scheduleLocalNotification(ln, System.currentTimeMillis() + 1000, LocalNotification.REPEAT_NONE);
如何在ToastBar中不显示id?
提前谢谢你。
由于@Shai 关于回调代码的评论,导致问题的代码已找到。
我完全忘记了我在 main class:
中使用以下方法实现了 LocalNotificationCallback
@Override
public void localNotificationReceived(String notificationId) {
GeneralUtil.showToastBarMessage(notificationId,3000,0);
}
LocalNotification Id 应该显示在 ToastBar 中吗?
我创建了本地通知:
LocalNotification ln = new LocalNotification();
ln.setId("geofence entered");
ln.setAlertTitle("Welcome");
ln.setAlertBody("Please proceed to the building");
Display.getInstance().scheduleLocalNotification(ln,
System.currentTimeMillis() + 1000, LocalNotification.REPEAT_NONE);
它正确触发并向我显示了带有正确标题和 Body 的通知。但是,如果我单击它,当它打开应用程序时 - Id
“已输入地理围栏”会显示在 ToastBar
中。如果我删除 .setId("geofence entered")
,则不会显示通知并且出现错误:
2021-07-13 17:15:40.009 21809-21809/io.jarvisapp.app E/Codename One: background location error
java.lang.IllegalArgumentException: Notification ID must be set
at com.codename1.ui.Display.scheduleLocalNotification(Display.java:4804)
at io.jarvisapp.app.geofence.GeofenceListenerImpl.onEntered(GeofenceListenerImpl.java:131)
第 131 行是 Display.getInstance().scheduleLocalNotification(ln, System.currentTimeMillis() + 1000, LocalNotification.REPEAT_NONE);
如何在ToastBar中不显示id? 提前谢谢你。
由于@Shai 关于回调代码的评论,导致问题的代码已找到。 我完全忘记了我在 main class:
中使用以下方法实现了LocalNotificationCallback
@Override
public void localNotificationReceived(String notificationId) {
GeneralUtil.showToastBarMessage(notificationId,3000,0);
}