2013-07-18 25 views
0

我希望能夠計算onPause和onResume之間爲我的應用程序的時間,以便知道用戶回到應用程序時動畫的位置。這是我正在嘗試的:Android在onPause和onResume之間獲取時間

long onPauseTime; 
long onResumeTime; 

public void onPause() { 
    super.onPause(); 
    onPauseTime = System.currentTimeMillis(); 
    Log.d(TAG, "onPause: " + onPauseTime); 
} 

public void onResume() { 
    super.onResume(); 
    onResumeTime = System.currentTimeMillis(); 
    Log.d(TAG, "onResume: " + onResumeTime); 
    Log.d(TAG, "Time Gone: " + (onResumeTime-onPauseTime)); 
} 

但onPauseTime在onResume方法中始終爲0。我究竟做錯了什麼?

+2

當你離開塔活動的onPause被稱爲 – Blackbelt

+0

嘗試保存onPauseTime在SharedPreferences – TronicZomB

+4

使其靜態 –

回答

1

試試類似這樣的東西,這樣你就可以節省時間,並且仍然知道如果你的活動被破壞了多久。

public class MyActivity extends Activity{ 

      //Class used to store data 
      private SharedPreferences preferences; 

      public void onResume(){ 
       super.onResume(); 
       long end = System.currentTimeMillis(); 

       preferences = PreferenceManager.getDefaultSharedPreferences(this); 
       long start = preferences.getLong("time",0); 

       long elapsed = end - start; 

      } 

      public void onPause(){ 
       super.onPause(); 
       SharedPreferences.Editor ed = preferences.edit(); 
       ed.putLong("time", System.currentTimeMillis()); 
       ed.commit(); 
      } 
     } 
相關問題