gpt4 book ai didi

android - 代号一 - ToastBar when "No connectivity detected"

转载 作者:行者123 更新时间:2023-11-29 11:42:12 25 4
gpt4 key购买 nike

处理互联网连接不可用(这在移动设备上很常见)的正确方法是什么?

也许这是个大问题(也可能不是),但是我没有找到任何 Codename One 教程/文章/视频或 API 来处理不稳定的互联网连接(这是移动设备上的常态)而不会出现错误或意外行为. 我找到了一个应用程序 (Protonmail),它具有我想在我的应用程序中复制的功能。请看以下两个屏幕截图:第一个是在互联网连接可用时拍摄的,第二个是在互联网连接不可用时拍摄的。

enter image description here

enter image description here

我注意到 ToastBar 不仅在 Internet 被明确禁用时出现,而且在每次无法访问服务器时也会出现。当显示“未检测到连接”消息时,应用程序会暂停 Internet Activity ,因此不会生成任何错误(并且用户编写的消息不会丢失)。当应用服务器恢复可访问时,ToastBar 自动消失(无需按“RETRY”按钮)。

在 Codename One 中以尽可能独立于特定应用程序的方式实现类似功能的正确方法是什么?是否可以暂停代号 One 应用程序的互联网 Activity 然后恢复?

我正在想象这样的事情:

  • 该应用每隔几秒尝试向服务器发出一个简单的请求(如 ping),实现 performBackgroundFetch 方法;
  • 如果在固定时间内(即三秒)没有响应,则暂停 Internet Activity 并显示 ToastBar;
  • 如果有响应,则恢复 Internet Activity ,重新启动暂停或失败的下载,并且 ToastBar 消失;
  • 理想情况下,所有这些都应该与 BrowserComponent 一起工作。

最佳答案

您可以使用以下方法检测 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

toast 条码只是以类似的方式提示并提供重试连接请求。请注意,这是通用的全局方法。

这不适用于浏览器组件之类的东西,它在没有“我们”的情况下自行连接。在那里,您需要处理 JavaScript 端的错误。

关于android - 代号一 - ToastBar when "No connectivity detected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45844443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com