带有碎片的Android Socket.IO

我有我的应用程序是使用Koush的networking套接字/ Socket.IO库只是一个片段。 (https://github.com/koush/android-websockets)

我有一些问题让Socket.IO客户端正确地使用片段生命周期及其线程。

大部分情况下,我的片段如下所示:

public class ScoresFragment extends SherlockFragment { public SocketIOClient socket; @Override public void onCreate(Bundle savedInstanceState) { createSocket(); super.onCreate(savedInstanceState); } @Override public void onPause() { try { this.socket.disconnect(); } catch (IOException e) { e.printStackTrace(); } super.onPause(); } @Override public void onResume() { socket.connect(); super.onResume(); } public void createSocket() { this.socket = new SocketIOClient(URI.create("http://blah-url"), new SocketIOClient.Handler() { //Required methods here } } @Override public void onCreateView(LayoutInflater inflater, ViewGroup group, Bundle savedInstanceState) { //Everything for the layout here } } 

而我得到的错误是在我尝试断开套接字的onPause()方法。 套接字连接就好,但只要我改变碎片,我得到一个崩溃。

致命的例外:主要
显示java.lang.NullPointerException
    在com.codebutler.android_websockets.SocketIOClient.cleanup(SocketIOClient.java:195)
    在com.codebutler.android_websockets.SocketIOClient.disconnect(SocketIOClient.java:188)
    在edu.bgsu.asf.athletics.fragments.ScoresFragment.onPause(ScoresFragment.java:14)

我读过的地方,我可能不得不谨慎的线程,我可能不得不使用一个处理程序,但networking套接字的git页面并没有暗示必须使用类似的东西。 提前致谢。

编辑:

SocketIOClient.java的部分:

 public void disconnect() throws IOException { cleanup(); //Line 188 } ///////////////////////////////////////////// private void cleanup() { mClient.disconnect(); mClient = null; mSendLooper.quit(); //Line 195 mSendLooper = null; mSendHandler = null; }