多个相同的sendMessage调用挂起处理程序

时间:2014-12-28 21:13:52

标签: android

我在代码中做了一个错误的印刷,发现了有趣的行为。当您使用sendMessage发送多个相同的消息时,处理程序将停止接收消息。例如:

    HandlerThread thread = new HandlerThread("ServiceStartArguments", android.os.Process.THREAD_PRIORITY_BACKGROUND);
    thread.start();

    // Get the HandlerThread's Looper and use it for our Handler
    mServiceLooper = thread.getLooper();
    mServiceHandler = new ServiceHandler(mServiceLooper);

    Message msg = mServiceHandler.obtainMessage();
    msg.what = action;
    mServiceHandler.sendMessage(msg);

    mServiceHandler.sendMessage(msg);

如你所见,我打了两次电话mServiceHandler.sendMessage(msg)。第二次通话后mServiceHandler停止接收任何进一步的消息。

有人可以解释这种行为吗?我在文档中找不到任何相关内容。

代码在模拟器中使用Android 4.4.2进行测试。

0 个答案:

没有答案