我有一个 Java 应用程序,它被部署为 Mac OS X 上的应用程序包。我修改了 info.plist 以注册我可以处理的文件类型,并使用 eAWT 来注册各种侦听器 ( AppForegroundListener, AppReOpenedListener, OpenFilesHandler, OpenURIHandler, AppHiddenListener
)。
我的应用程序应按以下方式工作:
- 如果通过单击应用程序启动“新建文档向导”,则会引导用户创建新文档。
- 如果用户单击文档并使用“打开方式”,我的应用程序应该打开该文档而不是执行向导操作。
我的问题:
如何确定我的应用程序是通过单击文档还是应用程序启动的?
args[]
main(String[] args)
无论应用程序如何启动,from始终为空- 如果应用程序是通过单击文档启动的,则会调用我的侦听器。如果它是直接启动的,似乎不会调用任何事件 - 除非我弹出一些 GUI,否则应用程序将终止。
- 我可以使用不推荐使用的方法
addApplicationListener
。在这种情况下,我会收到一个应用程序打开事件,但该事件在任何一种情况下都会在打开文件事件之前传递,因此也没有帮助。