java - java 或 vaadin 中特定日期到达时显示通知

标签 java service notifications vaadin

我正在使用 vaadin 框架来构建我的项目,我想在特定日期到来时显示通知,我有一个返回该日期的函数,我想知道如何在系统日期时显示消息到达这个计算的日期。

//I'd like to display a notification when the system's date reaches this "date_main_levee"
public Date getMainLevee(Date date_ouverture_plis, int duree_caution){
    Date date_main_levee;
    Calendar c = Calendar.getInstance();
    c.setTime(date_ouverture_plis);
    c.add(Calendar.DATE, duree_caution);
    date_main_levee=c.getTime();

    return date_main_levee;
}

基本上我正在寻找的是一个像Android中这个简单的解决方案:http://blog.blundell-apps.com/notification-for-a-user-chosen-time/

vaadin 中对此有什么建议吗(java 解决方案也将有所帮助,因为 vaadin 是一个 java 框架)。

编辑

我的问题不是通知本身,而是运行并测试实际日期是否等于我给出的日期参数的服务

编辑2:

我使用此代码,它在控制台中显示结果,但在 UI 中没有通知:

这是我有一个简单按钮的 View ,当我单击它时,任务应该开始:

final Button annulerLC=new Button("Annuler");
annulerLC.addClickListener(new ClickListener() {

        @Override
        public void buttonClick(ClickEvent event) {
            // TODO Auto-generated method stub
            DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = null;
            try {
                date = dateFormatter.parse("2015-04-23 18:29:00");
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            Timer timer = new Timer();

            timer.schedule(new CautionTask(), date);
        }
    });

TimerTask 是在这个单独的类中定义的(它只显示通知):

   public class CautionTask extends TimerTask{

public void run()
{
    Notification.show("success");//Doesn't show anything
    System.out.println("success+++");//Works fine
}

}

我在控制台上得到: success+++ 因此 system.out.println 显示了确切的结果,但是 View 不显示通知“成功”。

谢谢。

最佳答案

当您需要“实时”通知时,请在应用程序 init() 方法中启动一个后台线程,然后根据需要显示通知。 当然你必须使用 some push system ,因此通知被推送到客户端。另请阅读有关从另一个线程访问 UI 的部分。

当您不需要实时通知时,只需将检查代码添加到某些 UI 表单中,然后将其显示在那里。在这种情况下不需要后台服务。

您需要:

a) Server push因此后台服务器线程中的更改会被推送到客户端。

b) Correct access to the UI来自后台线程/任务,因为这可能在另一个上下文中运行

关于java - java 或 vaadin 中特定日期到达时显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809046/

相关文章:

SWIFT - 从 userInfo 获取值以填充推送通知的字段

internet-explorer - IE 中的 Webkit 桌面通知

java - 单例在 Spring 最新版本中不起作用

java - 带有两个标签的 JOptionPane

c# - 自安装使用参数执行的服务

json - 如何使用 PowerShell 在没有索引的情况下访问 JSON 文件中的数组对象

ios - 将通知中心设置为单次滑动还是两次滑动

java - 如何在 Hibernate 中将相关对象更改为另一个对象?

java - 避免在 JSP 页面中的下拉列表中重新加载数据

android - ServieConnection 根本不工作 Android