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