java.lang.RuntimeException: основной цикл потока неожиданно завершился, в чем может быть причина?

1

Я реализую простой поток, который передает сообщения в основной поток пользовательского интерфейса, чтобы вносить изменения в UL, но иногда я получаю это исключение и не могу определить его точную причину.

01-22 21:03:50.035: E/AndroidRuntime(18076): FATAL EXCEPTION: main
01-22 21:03:50.035: E/AndroidRuntime(18076): java.lang.RuntimeException: Main thread loop unexpectedly exited
01-22 21:03:50.035: E/AndroidRuntime(18076):    at android.app.ActivityThread.main(ActivityThread.java:4426)
01-22 21:03:50.035: E/AndroidRuntime(18076):    at java.lang.reflect.Method.invokeNative(Native Method)
01-22 21:03:50.035: E/AndroidRuntime(18076):    at java.lang.reflect.Method.invoke(Method.java:511)
01-22 21:03:50.035: E/AndroidRuntime(18076):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-22 21:03:50.035: E/AndroidRuntime(18076):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-22 21:03:50.035: E/AndroidRuntime(18076):    at dalvik.system.NativeStart.main(Native Method)
01-22 21:03:50.109: E/JavaBinder(18076): *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
01-22 21:03:50.109: E/JavaBinder(18076): android.util.AndroidRuntimeException: { what=102 when=-14h26m28s942ms obj=android.os.BinderProxy@41347e18 } This message is already in use.
01-22 21:03:50.109: E/JavaBinder(18076):    at android.os.MessageQueue.enqueueMessage(MessageQueue.java:187)
01-22 21:03:50.109: E/JavaBinder(18076):    at android.os.Handler.sendMessageAtTime(Handler.java:473)
01-22 21:03:50.109: E/JavaBinder(18076):    at android.os.Handler.sendMessageDelayed(Handler.java:446)
01-22 21:03:50.109: E/JavaBinder(18076):    at android.os.Handler.sendMessage(Handler.java:383)
01-22 21:03:50.109: E/JavaBinder(18076):    at android.app.ActivityThread.queueOrSendMessage(ActivityThread.java:1834)
01-22 21:03:50.109: E/JavaBinder(18076):    at android.app.ActivityThread.access$200(ActivityThread.java:123)
01-22 21:03:50.109: E/JavaBinder(18076):    at android.app.ActivityThread$ApplicationThread.schedulePauseActivity(ActivityThread.java:505)
01-22 21:03:50.109: E/JavaBinder(18076):    at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:78)
01-22 21:03:50.109: E/JavaBinder(18076):    at android.os.Binder.execTransact(Binder.java:338)
01-22 21:03:50.109: E/JavaBinder(18076):    at dalvik.system.NativeStart.run(Native Method)
  • 2
    В журнале говорится, что вы пытаетесь повторно использовать объект сообщения. Не делай этого; получить свежий объект сообщения для каждого сообщения. Если вы не можете понять это, пожалуйста, напишите свой код, который отправляет сообщения.
  • 1
    Да, я использовал тот же объект сообщения. Спасибо :) Пожалуйста, опубликуйте свой ответ, чтобы я мог пометить его как рабочий.
Теги:

2 ответа

1
Лучший ответ

Тед Хопп сказал:

В журнале говорится, что вы пытаетесь повторно использовать объект Message. Не делай этого; получить новый объект сообщения для каждого сообщения.

SO, используя свежие сообщения, исправил мою проблему. Поскольку он не опубликовал свой ответ, даже после того, как я попросил его сделать это, чтобы я мог принять его ответ.

Поэтому я делаю это сам.

Спасибо :)

0

Одновременно может возникнуть проблема с отправкой одного и того же объекта сообщения дважды или более одного раза. Поэтому взгляните на свой код и проверьте проблему. Моя причина.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню