Androidアプリケーションでブロードキャストメッセージを使用しています(io.socketから[アクティビティ]ページにブロードキャストメッセージを送信しています)。一部のデバイスでは、Samsung SM-G950Fおよび- SM-A520Fエラーが発生しました "Fatal Exception: Android.app.RemoteServiceException: can't deliver broadcast
"。Fabric crashlyticsでこのエラーが発生しました。また、この問題を再現できませんでした。Fabricから取得したログは、
Fatal Exception: Android.app.RemoteServiceException: can't deliver broadcast
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1813)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:154)
at Android.app.ActivityThread.main(ActivityThread.Java:6776)
at Java.lang.reflect.Method.invoke(Method.Java)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1520)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1410)
私はアプリで同じ問題に直面していました。コンテキストの代わりにLocalBroadcastManagerを使用しています。 Androidドキュメントでは、アプリ内ブロードキャストレシーバーの送信にLocalBroadcastManagerを使用することも提案されています。
//register your receiver like this
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
new IntentFilter("custom-event-name"));
// unregister like this
LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
// broadcastlike this
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
これが役立つことを願っています。ありがとう! :)
私はまったく同じことを、ほぼ同じ時間に、同じデバイスで体験しました。問題は最終的に私がサポートしているアプリに関連していましたが、サムスンは問題を引き起こし始めた何らかのタイプのアップデートを押し出したと思います。 10月の後半まで、アプリにはこの問題はありませんでした。どの放送が問題を引き起こしているのかわからなかったので、私は気が狂っていました。
ユーザーのフィードバックに基づいて、最終的に絞り込み、次の変更を行いました。
1)アプリを調べて、インテントに使用されるすべてのカスタム「アクション」文字列にアプリのパッケージ名が含まれていることを確認しました。
2)Context :: sendBroadcast()の使用からLocalBroadcastManager :: sendBroadcast()に切り替えました。