Android получает время между onPause и onResume

Я хочу, чтобы мое приложение могло рассчитывать время между 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 всегда равно 0 в методе onResume. Что я делаю неправильно?

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();
            }
        }
Другие вопросы по тегам