【问题标题】:CodenameOne Connection Request hangs when repeatedCodenameOne 连接请求在重复时挂起
【发布时间】:2014-10-08 19:29:04
【问题描述】:

我有以下代号一代码用于访问网络资源。它几乎是该用例的 Codename One 教程的精确副本。

 public void executeRequest(){
    String url = "http://www.random.net";
    InfiniteProgress prog = new InfiniteProgress();
    final Dialog dlg = prog.showInifiniteBlocking();

    ConnectionRequest r = new ConnectionRequest() {
        @Override
        protected void postResponse() {
                //handle changes to my form
            }

        @Override
        protected void readResponse(InputStream input)
                throws IOException {
              //handle parsing data
        }

        @Override
        protected void handleIOException(IOException err) {
            super.handleIOException(err);
        }



    };
    r.setUrl(url);
    r.setPost(false);
    r.addArgument("arg", "2");
    r.setDuplicateSupported(true);
    r.setDisposeOnCompletion(dlg);
    NetworkManager.getInstance().addToQueue(r);

}

我第一次运行它 - 没问题。如果我尝试通过再次调用相同的方法来“刷新”我的数据,则应用程序将挂起,InfiniteProgress 对话框将永远旋转。它几乎就像第一个网络请求从未真正完成,然后是第二个冲突。任何想法我做错了什么?

【问题讨论】:

    标签: connection request codenameone


    【解决方案1】:

    默认情况下,对完全相同的 URL 的重复请求被禁用,请尝试在连接请求上调用 setDuplicatesSuppotred(true)

    【讨论】:

    • 谢谢你的建议,谢。我添加了那段代码(反映在我上面的代码块中)并尝试了它 - 结果相同。将连接请求添加到队列后,应用程序将挂起,并且永远不会调用 ReadResponse 方法。
    • 您是否在第一个呼叫完成之前发送第二个呼叫?如果是这样,它可能会完成并返回到前一个呼叫的等待对话框。如果不是,我建议打开网络监视器工具来查看连接。您还可以在调试器中运行并在应用卡住时按暂停,以查看各个线程的卡住位置。
    【解决方案2】:

    为了将来参考,对我来说解决这个问题的是使用

    NetworkManager.getInstance().addToQueueAndWait(r);

    相反。这解决了我的大部分问题。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,但没有一个解决方案有效。但是,我是这样做的:

      final NetworkManager nm = NetworkManager.getInstance();
      nm.setTimeout(3000);
      

      然后

      protected void postResponse() {
      ...
          nm.shutdown();
      }
      

      并调用为 nm.addToQueueAndWait(request);

      也许 NetworkManager 最终完成了这项工作,但我只是确定地设置了“关闭”。它对我有用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-23
        • 2018-12-02
        • 2014-06-27
        相关资源
        最近更新 更多