OneSignal / OneSignal-Android-SDK

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your native Android or Amazon app with OneSignal. https://onesignal.com
Other
604 stars 368 forks source link

[Bug]: ANR related to location services #1791

Open AlexTip opened 1 year ago

AlexTip commented 1 year ago

What happened?

Sometimes app track ANR issue this related to https://github.com/OneSignal/OneSignal-Android-SDK/issues/1612 but problem in another place

Steps to reproduce?

No simple way to reproduce it. But you can see problem place by trace

What did you expect to happen?

Calculating in background thread

OneSignal Android SDK version

4.8.6

Android version

13, 12, 11, 10

Specific Android models

No specific configurations

Relevant log output

"main" tid=1 Blocked
  at com.onesignal.LocationController.onFocusChange (LocationController.java)
  at com.onesignal.OneSignal.onAppFocus (OneSignal.java)
  at com.onesignal.OSFocusHandler.startOnFocusWork (OSFocusHandler.java)
  at com.onesignal.ActivityLifecycleHandler.handleFocus (ActivityLifecycleHandler.java)
  at com.onesignal.ActivityLifecycleHandler.onActivityResumed (ActivityLifecycleHandler.java)
  at com.onesignal.ActivityLifecycleListener.onActivityResumed (ActivityLifecycleListener.java)
  at android.app.Application.dispatchActivityResumed (Application.java:438)
  at android.app.Activity.dispatchActivityResumed (Activity.java:1446)
  at android.app.Activity.onResume (Activity.java:1985)
  at androidx.fragment.app.FragmentActivity.onResume (FragmentActivity.java)
  at android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1457)
  at android.app.Activity.performResume (Activity.java:8312)
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4553)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:4595)
  at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:52)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2146)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:236)
  at android.app.ActivityThread.main (ActivityThread.java:8057)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:656)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:967)

Code of Conduct

jennantilla commented 1 year ago

Hello @AlexTip thank you for reaching out! This does indeed appear to be related to https://github.com/OneSignal/OneSignal-Android-SDK/issues/1612.

As a workaround while we investigate solutions, if you don't need location points in OneSignal, you can call OneSignal.setLocationShared(false) to disable these location updates.

Thanks!

AlexTip commented 1 year ago

@jennantilla Thanks, I'll try

Another point, you marked this issue as duplicate https://github.com/OneSignal/OneSignal-Android-SDK/issues/1612 But I think I have different root cause place (not sure but my opinion)

in my case it happened on handleFocus (ActivityLifecycleHandler.java) in #1612 - handleLostFocus (ActivityLifecycleHandler.java) - already fixed in previous release