应用中的 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.
中调用它
我正在将 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.