如何等待Java的Desktop.getDesktop()。browse()结果?

时间:2017-06-16 05:50:37

标签: java asynchronous wait

我正在使用Desktop.getDesktop().browse("some URL")并且它是异步的,因此任何后续调用都将与browse()请求并行。

我如何确定browse()已完成,所以只有在完成后我才能继续?

1 个答案:

答案 0 :(得分:0)

你不能,你不应该:/你无法知道用户关闭浏览器窗口(或所有窗口)或浏览器的选项卡。此外,您不应强迫用户完全关闭浏览器。 (如果我不得不这样,我会非常沮丧)

此命令使用URL参数有效地向系统发送“打开事件”,因此它适用于可以打开URL的所有平台。

您需要查看浏览器是否已关闭的目的/原因是什么?

现在我假设您要进行一些数据输入或身份验证。我使用OAuth 2.0 for installed applications(桌面版或移动版)看到混合身份验证(本机应用/网络),因此您可以获得灵感。

  

我如何确定browse()已完成,所以只有在完成后我才能继续?

如OAuth本机应用扩展程序中所述,您有两种选择:

  1. 定期轮询特定时间的结果(用户已验证,是否输入数据)
  2. 提供一个环回地址,Web服务器可以将事件发送到应用程序的服务器(如果有的话)