Как получить время, потраченное на фрагмент/активность

Я разрабатываю приложение для прохождения теста. Я хочу проверить, сколько времени пользователь потратил на это действие/фрагмент перед отправкой теста/задачи.

1
0
295
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать задачу Таймер , которая может быть запланирована с фиксированной скоростью с помощью 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 потеряет свое значение при изменении конфигурации, поэтому вам придется с этим справиться.

Другие вопросы по теме