我正在编写一个Android客户端,每20-30秒推送一次数据。还异步从服务器接收更新。 由于我也有其他UI组件,我无法阻止主线程。
使用的优点和缺点(性能,复杂性,可维护性,易用API等):
还建议是否有更好的方法。
答案 0 :(得分:0)
使用Android和UI应用程序,您不仅不应该阻止UI线程,而且对于较新版本的Android,根本不允许在UI线程上进行任何网络连接。
因此,即使是基于NIO的UI线程网络通常也不是一种有效的方法。
对于WebSocket,您可能需要查看:https://github.com/tavendo/AutobahnAndroid
这是NIO,但是在读者/作者的2个后台线程上。值得注意的是,它没有在UI线程上进行任何联网..包括连接建立。
我们可能会在不久的将来重写,以便在后台线程上执行旧式IO:
a)在这种情况下,NIO不会买很多东西 b)通过NIO实现TLS是PITA
免责声明:我是高速公路的作者并为Tavendo工作。