1

現在、アプリでActionBarSherlockを使用しており、分析用にGoogleのEasyTrackerを実装することを検討しています。

TrackedActivityは、ライフサイクルのさまざまな部分でいくつかの関数(getTracker()、trackStartActivity(Context)、trackActivityStop(Context)、およびtrackActivityRetainNonConfigurationInstance())を呼び出すだけです。

すでに基本クラスとしてSherlockFragmentActivityを拡張しているので、ライフサイクルのそれぞれの部分にこれらの呼び出しを含める必要があります。私が抱えている問題の1つは、次の呼び出しです。

@Override
public Object onRetainNonConfigurationInstance() 
{
     Object o = super.onRetainNonConfigurationInstance();

     // This call is needed to ensure that configuration changes (like
     // orientation) don't result in new sessions.  Remove this line if you want
     // configuration changes to for a new session in Google Analytics.
     EasyTracker.getTracker().trackActivityRetainNonConfigurationInstance();
     return o;
}

問題は、この呼び出しがFragmentActivityで最終的なものであるため、オーバーライドできないと思います。

新しいセッションがサーバーで送信されるデータを混乱させないように、ローテーションをどのように処理する必要がありますか?

また、補足として、ga_debug paramをtrueに設定してtrackStartActivity(Context)を呼び出すとlogcat出力が必要ですか?

前もって感謝します :)

4

1 に答える 1

1

私が見つけた最善の解決策は、セッションアクティビティカウンターがインクリメントされないように、onSaveInstanceStateにブールフラグを追加することでした。考えられるすべてのものが驚くほど単純です:)

于 2012-10-18T00:08:11.287 に答える