gpt4 book ai didi

java-me - j2me中是否可以作为后台进程上传数据?

转载 作者:行者123 更新时间:2023-12-02 10:25:03 24 4
gpt4 key购买 nike

即使网络连接很差?

具体来说,我编写了启动一个单独线程(从 UI)的代码,该线程尝试通过 HTTP POST 上传文件。然而,我发现,如果连接不好,处理器就会卡在 outputstream.close() 或 httpconnection.getheaderfield() 或任何强制通过网络传输数据的读/写操作上。这不仅会导致线程卡住,还会占用整个处理器,甚至用户界面也会变得无响应。

我尝试降低线程的优先级,但无济于事。

我的理论是,没有简单的方法可以避免这种行为,这就是为什么所有 j2me 教程都指示开发人员创建“通过网络发送数据...”屏幕,而不是仅在后台线程中发送所有内容。如果有人能证明我错了,那就太棒了。

谢谢!

最佳答案

一个重要的方面是您需要有一个通用的 UI 或屏幕,可以在后台网络调用失败时显示。对于任何移动应用程序、J2ME 或其他应用程序来说,它几乎都是必需的。

正如 Honza 所说,这取决于设计,可以做的事情有很多,比如在应用程序启动时预取数据,或者根据加载的屏幕(即导航路径)预取数据,或者在应用程序中内置默认数据集等。

您可以尝试的另一件事是内置计时器机制,该机制会在一定时间后重试数据下载,并在尝试 5 次或 1-2 分钟后中止,并显示通用屏幕或错误消息。

J2ME 中的某些手机允许检测飞行模式,如果可能的话,您可以检测到并立即显示适当的屏幕。

另外一个对我有用的设计是同步 UI 和网络线程,这样它们就不会互相锁定(请谨慎接受这一建议,因为我在一些三星和三洋手机就是因为这个)

总而言之,没有什么好的答案给你,但策略不同。

关于java-me - j2me中是否可以作为后台进程上传数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543652/

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