ser*_*g66 6 android google-analytics
有时在我试图打开它后长时间不使用我的应用程序后,我得到一个ANR.在谷歌播放控制台中,我得到以下内容:
ANR Executing service my.site.app/com.google.android.gms.analytics.AnalyticsService
Run Code Online (Sandbox Code Playgroud)
显然问题出在了AnalyticsService.但是当我的设备连接到我的电脑时,我无法重现ANR.我没有在分析帐户中看到ANR.
这是我的Application类:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的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());
}
Run Code Online (Sandbox Code Playgroud)
可能是什么原因?
小智 -2
由于 Activity 生命周期方法在 UI 线程上运行。确保后台线程可能需要很长时间的不同操作。特别是 sendScreenStat 和跟踪器创建在后台线程(AsyncTask 或专用线程)上运行。在这里查看更多详细信息:http://blog.akquinet.de/2010/02/17/android-activities-the-predominance-of-the-ui-thread/
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |