即使有一个较差的网络连接?

这试图通过HTTP POST上载文件具体而言,我已经写代码启动一个单独的线程(从UI)。但是我发现,如果接触不良,处理器卡上outputstream.close()或httpconnection.getheaderfield()或读/写它在网络上强制数据。这不仅会导致线程卡住,但窃取整个处理器,因此,即使在用户界面变得无法响应。

我试图降低线程的优先级,也没有用。

我的理论是,有避免这种行为,这就是为什么所有的J2ME教程指导开发人员创建一个“通过网络发送数据...”屏幕,而不是只在后台线程中发送的一切没有简单的方法。如果有人能证明我错了,那将是非常美妙的。

谢谢!

有帮助吗?

解决方案

一个重要方面是,你需要有当在背景网络呼叫失败可以显示通用UI或屏幕。它是非常上的任何移动应用,J2ME或以其它方式是必须的。

正如洪扎说,这取决于设计,有这么多的东西,可以做到,如基于加载的屏幕上的应用程序启动时的预取数据,或预取数据(即导航路径),或具有内置到应用程序默认的数据集等。

这可以尝试的另一件事是一个内置的该一定量的时间之后重试数据下载定时器机制,并中止后说5名试图或1-2分钟和显示屏幕的通用或错误消息。

在J2ME某些手持设备允许的飞行模式检测,如果可能的话则可以检测到并及时显示一个相应的屏幕。

另外一个设计,已经为我工作正在同步UI和网络线,使他们不锁定对方(采取咨询该位盐的大剂量,因为我已经对一些三星不少有趣的错误和因为这个三洋手机)

所有的一切没有很好的答案,但不同的策略。

其他提示

这几乎取决于你如何编写代码,并在您运行它。在CLDC线程的概念是非常有限的,如果任何线程做一些长期持久操作阻止它,以及其他线程可能是(和usualy是)。在设计应用程序时,应该考虑到这一点。

您可以将您的文件数据分成块,然后用失败多次重试上传。这取决于你的应用策略。如果你的首要任务是与出故障上传大量数据。你需要有组装服务器上的数据块来构建回数据。这可能有开销进行连接,但几率就很高了你的数据将得到上传。如果您没有上传文件的同时,这将轻松的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top