如何在 J2me 中处理网络线程调用和等待进度?
Posted
技术标签:
【中文标题】如何在 J2me 中处理网络线程调用和等待进度?【英文标题】:How to handle network thread calls and wait progress in J2me? 【发布时间】:2012-12-20 05:45:47 【问题描述】:在我的项目中,我在单独的线程中创建了一些对 servlet 的网络调用,在该线程启动之前,我将微调器显示为等待进度。在该网络线程完成之前,waitprogress 会显示在屏幕上,当我收到来自服务器的响应时,我必须显式调用进度条的 dispose() 方法来处理该进度条。因此,每当我在网络强度下降时拨打电话建立 GPRS 连接时,这有点复杂,我发现有时需要大约 2-3 分钟来抛出 IO 异常或从我处理 waitprogress、显示错误消息并继续的服务器接收响应。我没有向 waitprogress 添加任何取消命令,因为网络调用是使用单独的线程进行的,因此处理 waitprogress 将允许用户进行另一个调用,用户需要等待直到他得到响应。
上述情况很复杂,因为用户不会等待这么长时间才能得到响应。必须有某种方式,每当我调用网络线程并显示进度条时,用户应该能够取消包括网络线程在内的所有操作,返回到以前的状态并在没有连接或连接不良时进行另一个调用。
在这里,我正在使用 Lwuit。
【问题讨论】:
你能发布一些代码吗? 【参考方案1】:在 NetworkManager 类中,您可以添加此功能并在您的类中激活
只有当 lwuit 在你的应用程序中打开代码时,你才能添加这个功能:
public void killAll()
for (int i = 0; i < pending.size(); i++)
((ConnectionRequest) pending.elementAt(i)).kill();
pending.removeAllElements();
for (int i = 0; i < networkThreads.length; i++)
networkThreads[i].currentRequest.kill();
在此之后或之前您需要调用 dispose() 方法。
【讨论】:
以上是关于如何在 J2me 中处理网络线程调用和等待进度?的主要内容,如果未能解决你的问题,请参考以下文章