Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fatal Exception: android.app.RemoteServiceException: can't deliver broadcast at android.os.Handler.dispatchMessage

I am using broadcast messages on my android application (From io.socket I am sending broadcast messages to my Activity page). On some devices Samsung SM-G950F and SM-A520F I got an error "Fatal Exception: android.app.RemoteServiceException: can't deliver broadcast". I got this error on Fabric crashlytics also I was not able to reproduce this issue. Here is the log I got from 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) 
like image 335
SHIDHIN.T.S Avatar asked Oct 27 '17 08:10

SHIDHIN.T.S


1 Answers

I was facing the same issue with my app, what I do is use LocalBroadcastManager instead of context. Android documents also suggest using LocalBroadcastManager for sending in-app broadcast receivers.

//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); 

Hope this will help. Thanks! :)

like image 81
Asheesh Avatar answered Sep 20 '22 10:09

Asheesh