2

I shut down my thread like so: theSensor.getLooper().quit(); theSensor.quit();

Still I get the error below. What do I need to do to ignore the rest of the messages?

03-14 00:42:12.237: W/MessageQueue(10027): Handler (android.os.Handler) {41d5e6d8} sending message to a Handler on a dead thread
03-14 00:42:12.237: W/MessageQueue(10027): java.lang.RuntimeException: Handler (android.os.Handler) {41d5e6d8} sending message to a Handler on a dead thread
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.MessageQueue.enqueueMessage(MessageQueue.java:294)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.enqueueMessage(Handler.java:618)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.sendMessageAtTime(Handler.java:587)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.sendMessageDelayed(Handler.java:558)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.sendMessage(Handler.java:495)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Message.sendToTarget(Message.java:360)
03-14 00:42:12.237: W/MessageQueue(10027):  at com.sj.framework.tiltsensor.TiltSensor.onSensorChanged(TiltSensor.java:158)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.hardware.SystemSensorManager$ListenerDelegate$1.handleMessage(SystemSensorManager.java:256)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.os.Looper.loop(Looper.java:137)
03-14 00:42:12.237: W/MessageQueue(10027):  at android.app.ActivityThread.main(ActivityThread.java:5306)
03-14 00:42:12.237: W/MessageQueue(10027):  at java.lang.reflect.Method.invokeNative(Native Method)
03-14 00:42:12.237: W/MessageQueue(10027):  at java.lang.reflect.Method.invoke(Method.java:511)
03-14 00:42:12.237: W/MessageQueue(10027):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
03-14 00:42:12.237: W/MessageQueue(10027):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
03-14 00:42:12.237: W/MessageQueue(10027):  at dalvik.system.NativeStart.main(Native Method)
adneal
  • 30,484
  • 10
  • 122
  • 151

1 Answers1

1

Have you tried the quitSafely method? The description in the api docs looks like what you what. It will disable the MessageQueue so that sendMessage will return false and atempts to deliver the message wil not be successful. quitSafely

Quits the looper safely.

Causes the loop() method to terminate as soon as all remaining messages in the message queue that are already due to be delivered have been handled. However pending delayed messages with due times in the future will not be delivered before the loop terminates.

Any attempt to post messages to the queue after the looper is asked to quit will fail. For example, the sendMessage(Message) method will return false.

Community
  • 1
  • 1
dudebrobro
  • 1,287
  • 10
  • 17