如何在J2me中处理网络线程调用和等待进度?

时间:2012-12-20 05:45:48

标签: java-me lwuit

在我的项目中,我在单独的Thread中创建了一些对servlet的网络调用,在该线程开始之前,我将spinner显示为等待进度。在该网络线程完成之前,waitprogress显示在屏幕上,当我从服务器收到响应时,我必须明确调用进度条的dispose()方法来处置该进度条。因此,每当我打电话建立GPRS连接而网络强度下降时,这有点复杂我发现有时需要大约2-3分钟才能抛出IO异常或从服务器接收响应,我处理waitprogress,显示错误消息并继续。我没有向waitprogress添加任何取消命令,因为使用单独的线程进行网络调用,因此处理waitprogress将允许用户进行另一次调用,其中需要用户等待他得到响应。

上述情况很复杂,因为用户不会等待很长时间才能获得响应。必须有某种方式,每当我调用网络线程并显示进度条时,用户应该能够取消所有操作,包括网络线程,返回到先前的状态,如果没有连接或连接不良,则再拨打一次电话。

在这里,我正在使用Lwuit。

1 个答案:

答案 0 :(得分:2)

在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()方法。