我在Java中创建一个应用程序,我希望始终将数据保存到文件中,并且保存操作最少。换句话说,每当应用程序关闭或抛出异常时,它将首先尝试保存。一个问题:POWER BUTTON。当用户将电源按钮保持在计算机上时,它会强制关闭操作系统。现在,我究竟如何让Java检测到传入的关闭,或者JVM是否会先关闭系统(因此调用shutdown hooks)?
答案 0 :(得分:0)
我在这里总结评论中大部分已经写过的内容。
当用户按下电源按钮超过4秒钟时,通常会发生以下情况:BIOS将切断主板和所有外围设备的电源。
软件(操作系统或用户软件)无法对这种情况做出反应。
可能发生的情况是,硬盘驱动器会冲洗所有硬件缓冲区并将磁头停在安全的位置以进行运输,但也有可能不会发生,并且程序员无法控制它。
使用shutdown hooks对常规系统关闭可能有什么反应