Czasami po długim okresie nie używania mojej aplikacji, gdy próbuję ją włączyć, otrzymuję ANR. W konsoli Google Play pojawia się następujący:ANR Wykonanie usługi com.example.app/com.google.android.gms.analytics.AnalyticsService
ANR Executing service my.site.app/com.google.android.gms.analytics.AnalyticsService
Oczywiście problem jest w AnalyticsService
. Ale nie mogłem odtworzyć ANR, gdy moje urządzenie jest podłączone do mojego komputera. I nie widzę ANR na koncie analitycznym.
To moja klasa Zastosowanie:
public class BaseApp extends Application {
public static GoogleAnalytics analytics;
public static Tracker tracker;
@Override
public void onCreate() {
analytics = GoogleAnalytics.getInstance(this);
analytics.setLocalDispatchPeriod(1800);
analytics.setDryRun(Constants.IS_DEBUG);
GoogleAnalytics.getInstance(this).getLogger().setLogLevel(Logger.LogLevel.VERBOSE);
tracker = analytics.newTracker(Constants.GOOGLE_ANALYTICS_TRACKER_ID);
tracker.enableExceptionReporting(true);
tracker.enableAdvertisingIdCollection(true);
tracker.enableAutoActivityTracking(true);
super.onCreate();
}
}
I wtedy w mojej klasie BaseActivity:
@Override
public void onStart() {
super.onStart();
sendScreenStat();
}
protected String getScreenStatName() {
return getTitle().toString();
}
private void sendScreenStat() {
BaseApp.tracker.setScreenName(getScreenStatName());
BaseApp.tracker.send(new HitBuilders.ScreenViewBuilder().build());
}
Co może być przyczyną?
Dziękuję za odpowiedź. Zrobiłbym to, gdybym nie widział przewodnika z Androidem od samego Google'a: https://developers.google.com/analytics/devguides/collection/android/v4/#tracking-methods W szczególności mówią: "getInstance (Context) jest bezpieczny dla wątków i może być wywołany z dowolnego wątku". Właściwie używam ich próbek kodu w moim projekcie, więc spodziewam się, że działa poprawnie. – serg66