java - JCEF:CefApp 处置和重启
问题描述
我在我的应用程序中使用 JCEF(支持 Java Chromium 的框架)。
场景是当用户单击“启动”按钮时,我必须启动浏览器窗口,当他关闭窗口时,我必须退出浏览器并进行清理。
代码是:
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
try {
CefApp.getInstance().dispose();
} catch (Exception ex) {
Exceptions.printStackTrace(ex);
} finally {
dispose();
}
}
});
调用dispose()
会使cefApp 状态变为TERMINATED。因此,当用户再次单击启动时,我尝试初始化 cefApp 它说
java.lang.IllegalStateException: CefApp was terminated
因为CefApp.getInstance()
如果状态为 TERMINATED,则会引发此错误。
解决这个问题的处理和重新启动 CefApp 的方法是什么?
解决方案
怎么样,找到一种不关闭 JCEF 的方法,而只是 Set.Visible(false)
推荐阅读
- java - 当 try 块中发生异常时从方法调用 catch 块
- c++ - 字符串成员不适用于由分隔符分隔的文件中的字符串
- azure - 如何在我的 Azure 订阅中查找所有预览服务?
- php - 如何在 Woocommerce 中获取和显示 BACS 帐户详细信息
- python - 如何在 Python 上创建块矩阵?
- arrays - 如何创建具有教义关系、joincolumn 和 ManyToOne 的数组?
- php - 如何用我的徽标替换网站标题?
- swift - SWIFT - 从 JSON 中获取值并通过导航控制器
- docker - 在 docker 镜像中安装 sdkman
- wxpython - wxpython:当 Shift 键按下时,为什么我不能签入 wx.CheckListBox?