На самом деле, способ, которым вы предлагаете, является одним из наиболее подходящих методов для расчета времени видимости активности.
Шаги
Внутри onResume
запуск обработчика, как
public void onResume() {
super.onResume()
If(mHandler==null){
mHandler = new Handler()
mHandler.postDelayed(mRunnable, 1000)
}
}
Runnable mRunnable = new Runnable() {
public void run() {
mCountSeconds++;
mHandler.postDelayed(this, 1000);
}
};
Теперь вы можете удалить обратный вызов внутри onDestroy
public void onDestroy() {
super.onDestroy()
// Here you can measure time in seconds simple access mCounterSeconds
If(mHandler != null){
mHandler.removeCallbacks(mRunnable)
}
//here you can save counter value into db, sharedprefs, file...
}
В конце концов, вы получите mCountSeconds
, теперь вы можете сохранить его в базе данных или файле или где угодно.