2012-01-22 20 views
1

私は、メインUIスレッドにメッセージを渡してULを変更する単純なスレッドを実装していますが、時にはこの例外が発生し、その正確な理由がわからないことがあります。java.lang.RuntimeException:メインスレッドのループが突然終了しました。理由は何ですか?

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 [email protected] } 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

ログには、Messageオブジェクトを再利用しようとしているというメッセージが表示されます。それをしないでください。各メッセージに対して新しいMessageオブジェクトを取得します。あなたがそれを理解できない場合は、メッセージを送信しているあなたのコードを投稿してください。 –

+1

はい、私は同じメッセージオブジェクトを使用していました。 Thnxs :)私はそれを動作するものとしてマークすることができるようにあなたの答えを投稿してください。 –

答えて

1

はテッドのHoppは言った:

ログを使用すると、Messageオブジェクトを再利用しようとしていることを述べています。それをしないでください。各メッセージに対して新しいMessageオブジェクトを取得します。

だから、新鮮なメッセージを使用して私の問題を解決しました。彼は私が彼の答えを受け入れることができるように、私は彼に尋ねた後でも、答えを投稿しなかったので。

私は自分でそれをやっています。

ありがとうございました:)

0

が二回同じメッセージオブジェクトを送信するか、一度も問題を引き起こす可能性がより多くの。だからあなたのコードを見て、問題を確認してください。私のことが理由だった。

関連する問題