2012-05-07 61 views
1

在當前項目中,我使用「助手」類來進行API調用,但不會擴展活動。這個輔助類是從一個活動中調用的,其中一個Flurry會話按照建議啓動和停止。是否有可能從這個幫助類中調用Flurry調用?我想說是的,因爲Flurry會議已經開始作爲當前活動的一部分,但我不確定。Android之外的Flurry Analytics活動

我寧願在收到API調用結果時記錄Flurry標記,而不是在Activity中再次檢查結果消息,這樣我就不必重複某些邏輯。

這項工作?有更好的方法嗎?

回答

1

EDITED。見下文。

謝謝Jordi。我最終使用你的建議將Activity傳遞給了輔助類構造函數,設置了一個本地活動變量,並創建了一個使用活動變量記錄Flurry標記的方法。

/** 
* Logs the Flurry tag using the act that was passed into the constructor 
*/ 

// EDITED - DON'T USE THIS ANYMORE 

private void logFlurryTag(String s) { 

    FlurryAgent.onStartSession(act, "XXXXXXXXXXXXXXXXXXXXX"); 
    FlurryAgent.logEvent(s); 
    FlurryAgent.onEndSession(act); 
} 

我相信這應能正常工作,但我還沒有等着看亂舞標籤已經開始在尚未到來。

*** 2012年5月9日 ** *

每spacemanaki的建議,我決定返工我的邏輯包括登錄活動的亂舞事件,而不是助手類。這確實不是太多額外的工作,我已經證實這些事件正在報道中。它也比使用一種方法開始和停止亂序會話更安全。

+1

嘿,我不建議像這樣調用'onStartSession'和'onEndSession',因爲您最終可能會膨脹會話數據,這會導致不準確的度量標準。例如,如果兩次調用「logFlurryTag」之間有10秒的延遲,那麼您將有兩個會話而不是一個會話。如果你真的想用一個輔助類來包裝FlurryAgent,我會建議添加包裝'onStartSession'和'onEndSession'的方法,然後調用Activity生命週期方法'onStart'和'onStop'中的方法。 (免責聲明:我在Flurry工作在Android SDK上) – spacemanaki

+0

非常好的一點。我會重做這個,並用我最終使用的任何方式更新我的解決方案。謝謝! –

0

您的幫助程序類和/或使用的方法需要一個Activity參數,因此您可以將此Activity發送到Flurry。即

活動課:

Helper helper = new Helper(); 
helper.helping_method(this); 

助手類:

public void helping_method (Activity activitat){ 
     FlurryAgent.onStartSession(activitat, "xxxxxxxxxxxxxxxxxx"); 
     FlurryAgent.onEvent("HELPING METHOD"); 

創建助手時,您可以做同樣的和保存活動VAR爲類變量,在需要的時候使用它。