Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用苹果的handleQuit方法?_Java_Macos - Fatal编程技术网

Java 如何使用苹果的handleQuit方法?

Java 如何使用苹果的handleQuit方法?,java,macos,Java,Macos,我制作了一个java应用程序,将数据保存到.data文件中。我有一个窗口监听器,它监听应用程序关闭,以便启动代码将数据保存到文件中。当按下我专用的退出按钮,或按下窗口上的红色X时,一切都很好。然而,当用户选择命令+q路由时,事情就变糟了。应用程序已退出,但数据未保存。我如何正确实现apple的HandleQuit应用程序事件e方法来解决这个问题 在这种情况下,您需要的是一个。关机挂钩监听操作系统关闭应用程序的信号,并在发送该信号时触发。关闭钩子可以运行几乎任何代码 你可以连接内置的红色X按钮来关

我制作了一个java应用程序,将数据保存到.data文件中。我有一个窗口监听器,它监听应用程序关闭,以便启动代码将数据保存到文件中。当按下我专用的退出按钮,或按下窗口上的红色X时,一切都很好。然而,当用户选择命令+q路由时,事情就变糟了。应用程序已退出,但数据未保存。我如何正确实现apple的HandleQuit应用程序事件e方法来解决这个问题

在这种情况下,您需要的是一个。关机挂钩监听操作系统关闭应用程序的信号,并在发送该信号时触发。关闭钩子可以运行几乎任何代码

你可以连接内置的红色X按钮来关闭应用程序,而不是保存文件,关闭钩子将捕获请求并保存文件

唯一需要注意的是,关机挂钩应该由执行时间不长的代码组成。因此,保存文件的时间不应超过一两秒钟,也不应使用用户必须在关机挂钩中确认的确认对话框,因为用户识别对话框可能需要不确定的时间

关闭挂钩应该是短期的原因是,当应用程序被请求关闭时,操作系统通常希望它在合理的时间内关闭。如果没有,例如在Windows中,操作系统可能会显示其中一个,应用程序没有响应。。。信息

最后,您可能会在稍后遇到这个问题,您可能想知道如何从任务管理器或OS X上的“强制退出应用程序”对话框中捕获强制退出请求。嗯,您无法捕获这些请求,您不应该尝试!然而,这是一个完全的黑客行为,应该不惜一切代价避免。如果你在设计应用程序时试图避开用户和管理员应该始终可用的选项,那么这就强烈表明你的应用程序设计糟糕,或者是一个糟糕的角色。想象一下,如果你安装了一个以这种方式运行的应用程序,你不认为程序员在试图赋予他们的应用程序不可杀戮的品质时是懒惰的,或者可能是恶意的吗


另外,强制退出是一种强制的非紧急关闭,仅在应用程序挂起且不会正常退出时才应使用。OSs需要一个强制退出的选项,这样用户或管理员就可以杀死失控或无响应的应用程序。如果你的用户正在强制退出你的应用程序,他们可能会误解强制退出是不可取的,或者你的应用程序的设计中有一些东西使得强制退出比正常退出你的应用程序更有利。如果是这种情况,例如,你从用户那里听到他们出于某种原因而强制退出,这通常表明你的应用程序的一部分设计得很差,无法满足用户的期望。

在这种情况下,你想要的是一个新的应用程序。关机挂钩监听操作系统关闭应用程序的信号,并在发送该信号时触发。关闭钩子可以运行几乎任何代码

你可以连接内置的红色X按钮来关闭应用程序,而不是保存文件,关闭钩子将捕获请求并保存文件

唯一需要注意的是,关机挂钩应该由执行时间不长的代码组成。因此,保存文件的时间不应超过一两秒钟,也不应使用用户必须在关机挂钩中确认的确认对话框,因为用户识别对话框可能需要不确定的时间

关闭挂钩应该是短期的原因是,当应用程序被请求关闭时,操作系统通常希望它在合理的时间内关闭。如果没有,例如在Windows中,操作系统可能会显示其中一个,应用程序没有响应。。。信息

最后,您可能会在稍后遇到这个问题,您可能想知道如何从任务管理器或OS X上的“强制退出应用程序”对话框中捕获强制退出请求。嗯,您无法捕获这些请求,您不应该尝试!然而,这是一个完全的黑客行为,应该不惜一切代价避免。如果你在设计应用程序时试图避开用户和管理员应该始终可用的选项,那么这就强烈表明你的应用程序设计糟糕,或者是一个糟糕的角色。想象一下,如果你安装了一个以这种方式运行的应用程序,你不认为程序员在试图赋予他们的应用程序不可杀戮的品质时是懒惰的,或者可能是恶意的吗

另外,强制退出是一种强制的非紧急关闭,仅在应用程序挂起且不会正常退出时才应使用。OSs需要一个强制退出的选项,这样用户或管理员就可以杀死失控或无响应的应用程序。如果你的用户被迫退出你的应用程序,他们可能会误解
第二,强制退出是不可取的,或者你的应用程序设计中有一些东西使得强制退出比正常退出更有利。如果是这种情况,例如,您从用户那里听说他们出于某种原因而强制退出,这通常表明您的应用程序的一部分设计得很差,无法满足用户的期望。

另外,java.util.Preferences仍然存在⌘-请看这个。这是一个很好的参考,它会起作用。然而,需要注意的是,如果这很重要的话,与苹果公司的特定偏好挂钩将导致你的代码不再是跨平台的。事实上,这很重要。它在两个平台上都有使用,我希望保持这种方式。所以我必须说,谢谢你的回答。它是完美的。作为旁白,java.util.Preferences仍然存在⌘-请看这个。这是一个很好的参考,它会起作用。然而,需要注意的是,如果这很重要的话,与苹果公司的特定偏好挂钩将导致你的代码不再是跨平台的。事实上,这很重要。它在两个平台上都有使用,我希望保持这种方式。所以我必须说,谢谢你的回答。太完美了。