2013-04-26 59 views
0

我有一個活動並使用了一個意圖,我稱其爲另一個應用程序的某個部分。即可以說,我的應用程序A具有活性1,從我稱之爲應用B的活性1,我有過使用下面的機制Android:測量從當前活動中花費在另一個應用程序上的時間

Activity A 
Intent intent = null; 
     try { 
      intent = Intent.parseUri("URI://sample/100/1000", 
        Intent.URI_INTENT_SCHEME); 
     } catch (URISyntaxException e) { 
      --ERROR 

     } 

     startActivity(intent); 

當我按下後退按鈕返回到無法控制我的應用程序的活動1 A.因爲我失去控制,我無法確定如何捕獲用戶在應用程序B上的活動所花費的時間。有什麼方法可以捕獲這些嗎?我知道如果用戶從該應用程序進入主屏幕,我的數據將會傾斜,但我確定。但是,幾秒鐘內使用系統時間可以捕獲時間嗎?

+0

啓動一個定時器,當所謂的活動的onPause被調用,那麼在您的onResume輕易否定它,並注意到其計數的。 – 2013-04-26 11:32:20

+0

是的,我想到了 - 我不知道爲什麼,但我的onPause和onResume似乎在離開我的應用程序之前被調用,而不是在之後。我只是不知道爲什麼會發生這種情況 – Slartibartfast 2013-04-26 11:35:21

+0

因此,而不是onpause,嘗試在onstop,如果這種方法有效,那麼在實際情況下,哪種生命週期方法突然生效實際上是非常不可預測的。 – 2013-04-26 11:44:16

回答

0

也許你可以使用「startActivityForResult」。這樣,您可以編寫「onActivityResult」並檢查自您開始意圖以來已經過了多長時間。

更多關於它可以在這裏找到:How to manage `startActivityForResult` on Android?

+0

但我怎麼做,當我一起調用另一個應用程序?我對其他應用中發生的情況沒有任何控制權。我可以打電話,一旦控制權返回。 – Slartibartfast 2013-04-26 11:37:12

+0

因此,讓我們說你在使用像這樣的方法執行「startActivityForResult」之前捕獲系統時間:long start = System.currentTimeInMillis();.然後,在onActivityResult()中,一旦控件進入您的活動,您可以再次花費時間,並使用開始時間執行diff。您可以將時間保留在啓動活動B的活動A的成員變量中。因此,現在您知道活動B啓動和結束時的系統時間,並且您可以找到持續時間。它會對你有用嗎? – 2013-04-26 12:01:17

相關問題