私はC2DMサービスを使用していますが、メッセージを受け取ったときにToastメッセージを表示しているときに "Dead threadのハンドラにメッセージを送信中"私は到着したメッセージを見たい。コードを使用して:Android - デッドスレッドでハンドラにメッセージを送信する、Toastエラー
@Override
protected void onMessage(Context context, Intent intent) {
Log.e("C2DM", "Message: arived");
Bundle extras = intent.getExtras();
if (extras != null) {
//Toast.makeText(this.getApplicationContext(), (CharSequence) extras.get("payload"), Toast.LENGTH_LONG).show();
}
}
onMessage
方法はC2DMBaseReceiver
を拡張するクラスで使用されています。トーストメッセージは決して表示されません。
ここのエラーは何ですか?ソウルティオンはありますか?
編集:
09-06 08:59:02.135: WARN/MessageQueue(5654): Handler{44e65658} sending message to a Handler on a dead thread
09-06 08:59:02.135: WARN/MessageQueue(5654): java.lang.RuntimeException: Handler{44e65658} sending message to a Handler on a dead thread
09-06 08:59:02.135: WARN/MessageQueue(5654): at android.os.MessageQueue.enqueueMessage(MessageQueue.java:179)
09-06 08:59:02.135: WARN/MessageQueue(5654): at android.os.Handler.sendMessageAtTime(Handler.java:457)
09-06 08:59:02.135: WARN/MessageQueue(5654): at android.os.Handler.sendMessageDelayed(Handler.java:430)
09-06 08:59:02.135: WARN/MessageQueue(5654): at android.os.Handler.post(Handler.java:248)
09-06 08:59:02.135: WARN/MessageQueue(5654): at android.widget.Toast$TN.hide(Toast.java:344)
09-06 08:59:02.135: WARN/MessageQueue(5654): at android.app.ITransientNotification$Stub.onTransact(ITransientNotification.java:55)
09-06 08:59:02.135: WARN/MessageQueue(5654): at android.os.Binder.execTransact(Binder.java:288)
09-06 08:59:02.135: WARN/MessageQueue(5654): at dalvik.system.NativeStart.run(Native Method)
私は同じ問題を抱えていますが、あなたは解決策を見つけましたか? – ToddH
ToastメッセージからNotificationバーに移動しました。メッセージを表示します。サーバから取得しました。私はトーストとしてそれを実行することができませんでした。目標はあなたのアプリとコンストラクタで慎重にコンテキストを使用することです – Waypoint