应用中的 Flurry class 或每个 Activity

Flurry in Application class or each Activity

我正在将 Flurry Analytics 放入我的应用程序中。 根据来源,建议扩展应用程序 class 并在那里初始化 Flurry。

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        // configure Flurry
        FlurryAgent.setLogEnabled(false);

        FlurryAgent.init(this, getResources().getString(R.string.flurrykey));
    }
}

或者放在每个activity

@Override
protected void onStart()
{
    super.onStart();
    FlurryAgent.onStartSession(this, "YOUR_API_KEY");
}

@Override
protected void onStop()
{
    super.onStop();     
    FlurryAgent.onEndSession(this);
}

两者都正确吗?

您应该只启动一次会话,然后您可以将它启动到 Main activity(如果您有一个 activity 在应用程序的整个生命周期中都有效)或进入申请 class.

编辑: 更好的解决方案是 call onStartSession and onEndSession on each activity

latest Flurry documentation 开始,您应该始终调用 FlurryAgent.init(Context, String)

但是,只有当您的应用程序使用低于 minSdkVersion 14 的版本时(即,如果您支持低于 Ice Cream Sandwich 的设备),才应调用 FlurryAgent.onStartSession(Context)

如果您的目标是 minSdkVersion 14 及更高版本,您 根本 不需要调用 FlurryAgent.onStartSession(Context)。如果你不是,那么你应该在每个 Activity.

中调用它