【问题标题】:How to get time spent on a fragment/activity如何获得花在片段/活动上的时间
【发布时间】:2020-12-22 19:19:33
【问题描述】:

我正在开发一个用于考试的应用程序。我想在提交测试/任务之前检查用户在该活动/片段上花费了多少时间。

【问题讨论】:

    标签: android datetime time


    【解决方案1】:

    您可以使用Timer 任务,该任务可以使用scheduleAtFixedRate 以固定速率安排,在onResume 运行并在onPause 停止

    public class MainActivity extends AppCompatActivity {
    
        String TAG = "LOG_TAG";
        int mPassedSeconds = 0; // spent time on the test
        private Timer mTimer;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        @Override
        protected void onResume() {
            super.onResume();
    
            int ONE_SECOND = 1000;
            mTimer = new Timer();
            mTimer.scheduleAtFixedRate(new TimerTask() {
                @Override
                public void run() {
                    mPassedSeconds++;
                    Log.d(TAG, "run: " + mPassedSeconds);
                }
            }, 0, ONE_SECOND);
    
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            mTimer.cancel();
        }
    }
    

    注意:mPassedSeconds 将在配置更改时失去其价值,因此您必须处理它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      • 2019-12-22
      • 2017-10-25
      • 2012-04-04
      • 1970-01-01
      相关资源
      最近更新 更多