[英]Flurry analytics in every Activity?
我想在我的Android應用程序中集成flurry分析,它看起來非常簡單。 但我不熟悉亂舞及其運作方式。
我應該添加代碼:
public void onStart()
{
super.onStart();
FlurryAgent.onStartSession(sample, “APIXXXXXXXXXXXX”);
}
在每個活動?
我的應用程序使用了很多活動,我並不真正關心跟蹤使用哪些活動,只關注安裝次數,會話次數和會話長度。 但是,如果僅在啟動活動中添加了flurry代碼,那么會話長度是否可用?
我知道我想要的大部分信息已經在Play商店中提供,但我想嘗試這一點來概述不同平台上的應用程序。
這是一個很好的答案: https : //stackoverflow.com/a/8062568/1635817
我建議你創建一個“BaseActivity”並告訴你所有的活動來擴展它,這樣你就不必在每個活動類中復制/粘貼這些行。
像這樣的東西:
public class BaseActivity extends Activity
{
public void onStart()
{
super.onStart();
FlurryAgent.onStartSession(this, "YOUR_KEY");
// your code
}
public void onStop()
{
super.onStop();
FlurryAgent.onEndSession(this);
// your code
}
}
回應@conor評論:
只要有任何上下文調用了onStartSession(Context,String)而不是onEndSession(Context),會話就會繼續。 此外,如果新的Context在最后一次調用onEndSession的Context的10秒內(默認會話超時長度)調用onStartSession(Context,String),則會恢復會話,而不是創建新會話。 會話長度,使用頻率,事件和錯誤將繼續作為同一會話的一部分進行跟蹤。 這可確保當用戶在應用程序中從一個Activity轉換到另一個Activity時,他們將不會為每個Activity跟蹤單獨的會話,但會有一個跨越許多活動的會話。
來自florianmski的答案很有意義,但是當您必須在應用程序中使用不同類型的活動時會出現一些問題,例如FragmentActivity,TabActivity,ListActivity等。 在這種情況下,您無法從單個BaseActivity擴展所有活動。 我個人更喜歡在每個活動的onStart和onStop方法中調用onStartSession和onEndSession,但在將它們包裝到某個類之前,例如:
public class Analytics {
public static void startSession(Context context) {
FlurryAgent.onStartSession(context, Config.FLURRY_KEY);
// here could be some other analytics calls (google analytics, etc)
}
public static void stopSession(Context context) {
FlurryAgent.onEndSession(context);
// other analytics calls
}
}
在每個活動內:
public void onStart() {
super.onStart();
Analytics.startSession(this);
}
public void onStop() {
super.onStop()
Analytics.stopSession(this);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.