1

ユーザーがアプリに戻ったときにアニメーションがどこにあるべきかを知るために、アプリの 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 です。私は何を間違っていますか?

4

1 に答える 1

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();
            }
        }
于 2013-07-18T15:13:13.057 に答える