【发布时间】:2020-12-22 19:19:33
【问题描述】:
我正在开发一个用于考试的应用程序。我想在提交测试/任务之前检查用户在该活动/片段上花费了多少时间。
【问题讨论】:
我正在开发一个用于考试的应用程序。我想在提交测试/任务之前检查用户在该活动/片段上花费了多少时间。
【问题讨论】:
您可以使用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 将在配置更改时失去其价值,因此您必须处理它。
【讨论】: