开发者社区> 问答> 正文

android 4.0 mina访问服务器出错?报错

IoConnector connector=new NioSocketConnector();
        connector.setConnectTimeoutMillis(30000);
        connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MathProtocolCodecFactory(false)));
        connector.setHandler(new ClientHandler());

        ConnectFuture future = connector.connect(new InetSocketAddress("192.168.99.145", 9122));

在android4.0上会报错,    原因是不能在主线程上加载数据,  但是我new  handler了啊   难道是  new错了?




展开
收起
爱吃鱼的程序员 2020-06-22 18:32:07 516 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    handler是在主线程执行的。。。谢谢了,现在好了,把方法写到一个线程里面就好了,一开始线程没有start。嗯,但是不知道怎么再新建一个线程,newThread在哪new呢好了,问题解决了,把这个方法写到一个线程去就行了,一开始还是不成功是因为线程忘了start了,马虎大意要不得啊。

    handler在子线程运行要使用Looped。

    主线程实例化Handler没问题是因为主线程会自动申请消息循环队列,如果想在子线程运行需要使用Looped。如:

    <preclass="linemt-10q-content">Looper.prepare();mHandler=newHandler((Callback)MyThread.this);Looper.loop();

    2020-06-22 18:32:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载