【问题标题】:Android Emitter.Listener not workingAndroid Emitter.Listener 不工作
【发布时间】:2017-07-09 23:11:47
【问题描述】:

我正在制作一个带有套接字 IO 的应用程序,它正确连接到服务器,但它不监听事件。

这是我的部分代码:

private Socket mSocket;
{
    try {
        mSocket = IO.socket(ip+":8000");
    } catch (URISyntaxException e) {
        throw new RuntimeException(e);
    }
}
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_ads);

    mSocket.on(Socket.EVENT_CONNECT_ERROR, onConnectError);
    mSocket.on(Socket.EVENT_CONNECT_TIMEOUT, onConnectError);
    mSocket.connect();
    mSocket.on("send file", onSendFile);
}

private Emitter.Listener onSendFile = new Emitter.Listener() {
    @Override
    public void call(Object... args) {
        String data = (String) args[0];
        Toast.makeText(getApplicationContext(), data, Toast.LENGTH_LONG).show();
        mSocket.emit("fileok", "OKIDOKI");
    }
};

【问题讨论】:

    标签: android socket.io


    【解决方案1】:

    尝试使用getActivity().runOnUiThread在 UI 线程而不是其他线程上显示 toast

    private Emitter.Listener onSendFile = new Emitter.Listener() {
        @Override
        public void call(Object... args) {
            String data = (String) args[0];
    
            mSocket.emit("fileok", "OKIDOKI");
    
    getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(getApplicationContext(), data, Toast.LENGTH_LONG).show();
                    }
                });
        }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-06
      • 2021-12-07
      • 2015-01-04
      • 2018-03-26
      • 2012-08-14
      • 2014-04-18
      • 2011-11-26
      • 2016-01-02
      相关资源
      最近更新 更多