Fatal Exception: java.lang.AssertionError: Register too many Broadcast Receivers
Fatal Exception: java.lang.AssertionError: Register too many Broadcast Receivers
at android.app.LoadedApk.checkRecevierRegisteredLeakLocked + 782(LoadedApk.java:782)
at android.app.LoadedApk.getReceiverDispatcher + 810(LoadedApk.java:810)
at android.app.ContextImpl.registerReceiverInternal + 1337(ContextImpl.java:1337)
at android.app.ContextImpl.registerReceiver + 1317(ContextImpl.java:1317)
at android.app.ContextImpl.registerReceiver + 1311(ContextImpl.java:1311)
at android.content.ContextWrapper.registerReceiver + 554(ContextWrapper.java:554)
at ddolcatmaster.mypowermanagement.BatteryManageService.regisiterReceiver(ManageService.java)
at ddolcatmaster.mypowermanagement.BatteryManageService.onStartCommand(ManageService.java)
at android.app.ActivityThread.handleServiceArgs + 3284(ActivityThread.java:3284)
at android.app.ActivityThread.access$2200 + 196(ActivityThread.java:196)
at android.app.ActivityThread$H.handleMessage + 1637(ActivityThread.java:1637)
at android.os.Handler.dispatchMessage + 111(Handler.java:111)
at android.os.Looper.loop + 210(Looper.java:210)
at android.app.ActivityThread.main + 5988(ActivityThread.java:5988)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run + 852(ZygoteInit.java:852)
at com.android.internal.os.ZygoteInit.main + 742(ZygoteInit.java:742)
오류가 발생한 폰의 종류 및 운영체제는 아래와 같다.
안드로이드는 휴대폰 제조사별로 커스트마이징하기때문에 운영체제의 파편화가 심하다.
화훼이 폰의 해결법은 있는 듯 한데…. 라이브러리를 추가해야되는 것 같다. 별로 시도하고 싶지않은 방법이다
java.lang.IllegalArgumentException: register too many Broadcast Receivers
휴대폰 운영체제 자체적으로 백그라운드서비스 제한을 두는 문제기 때문에 이걸 코드상으로 해결할 방법이 있을까 하는 생각이 든다.
위 오류가 발생하는 경우 , 사용자에게 알림메세지를 주는 방법도 괜찮을 듯 하다.