IRCサーバーに接続する新しいスレッドを呼び出すコードがあります。スレッドには、IRCサーバーからの応答をリッスンするループがあり、メソッド「ProcessData」を呼び出して応答を実行します。
私のUIで、onStopとonPauseでIRCサーバーを「終了」できるようにしたいと思います。私が抱えている問題は、ハンドラーを使用してIRCスレッドにメッセージを送信し、IRCサーバーにQUITコマンドを送信すると、UIスレッドでネットワーク操作を実行していることを通知することです。
ハンドラーはIRCManagerクラスでセットアップされます(このクラスはThreadを拡張し、別のスレッドで実行するクラスです。
public Handler networkHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        try {
            processData((String) msg.obj);
        } catch (IOException e) {
            Log.e(TAG, "network handler given an object NOT of type String");
        }
        super.handleMessage(msg);
    }
};
メインアクティビティのハンドラーを使用して、ネットワークスレッドを開始した直後にインスタンス化します
irc.start();
networkHandler = irc.networkHandler;
onPauseイベントで、ハンドラーにメッセージを送信します
Message msg = new Message();
msg.obj = IRCManager.QUIT;
networkHandler.sendMessage(msg);
編集:これがprocessDataメソッドです
void processData(String data) throws IOException {
    if (data.contains("PING")) {
        String pingId = data.substring(6, data.length());
        sendMessage(pong + pingId + "\n");
        isConnected = true;
        Message msg = new Message();
        msg.what = 1;
        msg.obj = "test";
        handler.sendMessage(msg);
    } else if (data.contains("Welcome")) {
        sendMessage("PRIVMSG " + BOT_NAME + " JOIN " + siteId + "\n");
    } else if (data.contains(IRCManager.QUIT)) {
        disconnect();
    } else if (isClientConnected()) {
        Message msg = new Message();
        msg.what = 2;
        msg.obj = "test";
        handler.sendMessage(msg);
    }
}
ハンドラーがスレッドに正しくリンクしていないようです。誰かが私がこれを行う方法に光を当てることができますか?
私のスレッドは実際にその時間の99%をwhileループでIRCサーバーからの入力ストリームをチェックするのに費やしています。これもそれと関係があるかもしれません。