处理互联网连接不可用的正确方法是什么(在移动设备上常见)?
也许这是一个很大的问题(或者可能不是),但我没有找到任何Codename One教程/文章/视频或API来处理不稳定的互联网连接(这是移动设备上的常态)没有错误或意外行为。 我发现了一个应用程序(Protonmail),它具有我想在我的应用程序中复制的功能。请查看以下两个屏幕截图:第一个是在互联网连接可用时拍摄的,第二个是在它不可用时拍摄的。
我注意到ToastBar不仅在显式禁用Internet时出现,而且每次都无法访问服务器时出现。当"没有检测到连接时"如果显示消息,应用程序将暂停Internet活动,因此不会生成任何错误(并且用户写入的消息不会丢失)。当应用服务器返回可访问时,ToastBar会自动消失(无需按下" RETRY"按钮)。
在Codename One中以尽可能独立于特定应用程序的方式实现类似功能的正确方法是什么?是否可以暂停Codename One应用程序的Internet活动然后恢复它?
我想象这样的事情:
答案 0 :(得分:1)
您可以使用以下方法检测NetworkManager
课程中的网络错误:
NetworkManager.getInstance().addErrorListener(e -> {
// prevents the error from propagating into the ConnectionRequest class
e.consume();
ToastBar.showMessage("Connectivity error, retry?", FontImage.MATERIAL_ERROR,
ee -> ee.getConnectionRequest().retry());
});
如此处所述:https://www.codenameone.com/manual/files-storage-networking.html
吐司条形码只是以类似的方式提示,并提供连接请求的重试。请注意,这是通用的全局方法。
这对于浏览器组件这样的东西不起作用,浏览器组件在没有“我们”的情况下自行连接。在那里你需要处理JavaScript方面的错误。