Manchmal nach langen Zeiträumen, in denen ich meine App nicht benutze, wenn ich versuche, sie einzuschalten, bekomme ich einen ANR. In der Google Play-Konsole erhalte ich folgendes:ANR Executing service com.beispiel.app/com.google.android.gms.analytics.AnalyticsService
ANR Executing service my.site.app/com.google.android.gms.analytics.AnalyticsService
Offensichtlich ist das Problem in der AnalyticsService
. Aber ich konnte den ANR nicht reproduzieren, solange mein Gerät an meinen Computer angeschlossen ist. Und ich sehe die ANR nicht im Analytics-Konto.
Das ist meine Anwendungsklasse:
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();
}
}
Und dann in meiner BaseActivity Klasse:
@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());
}
Was könnte die Ursache sein?
Vielen Dank für die Antwort. Ich hätte das getan, wenn ich den Android Analytics Guide nicht von Google selbst gesehen hätte: https://developers.google.com/analytics/devguides/collection/android/v4/#tracking-methods Insbesondere sagen sie: "getInstance (Context) ist threadsicher und kann von jedem Thread aufgerufen werden". Eigentlich verwende ich ihre Code-Beispiele in meinem Projekt, also erwarte ich, dass es richtig funktioniert. – serg66