如何在 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 中处理网络线程调用和等待进度?的主要内容,如果未能解决你的问题,请参考以下文章

python-多线程:调用thread模块中的start_new_thread()函数来产生新线程

Python基础学习

Python3 多线程

threading学习

Python-多线程

Python 多线程