The linked answer is mostly fine, just tweak it a little bit to prevent it running after onPause()
:
private boolean mRunning;
Handler mHandler = new Handler();
Runnable mUpdater = new Runnable() {
@Override
public void run() {
// check if still in focus
if (!mRunning) return;
// upadte your list view
// schedule next run
mHandler.postDelayed(this, 500); // set time here to refresh views
}
};
@Override
protected void onResume() {
super.onResume();
mRunning = true;
// start first run by hand
mHandler.post(mUpdater);
}
@Override
protected void onPause() {
super.onPause();
mRunning= false;
}