Android获取onPause和onResume之间的时间

时间:2013-07-18 14:49:49

标签: android onresume onpause

我希望能够为我的应用计算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));
}

但onResume方法中onPauseTime始终为0。我做错了什么?

1 个答案:

答案 0 :(得分: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();
            }
        }