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));
}

但 onPauseTime 在 onResume 方法中始终为 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 回答