Android kotlin как можно реализовать foreground service?

Есть TextView в котором при помощи DateUtils.getRelativeTimeSpanString указывается время последнего обновления базы "3 секунды назад" , "2 часа назад" и тд. Как можно реализовать процесс который допустим каждые 5 секунд будет смотреть время последнего обновления базы и отображать в TextView. Background Worker работает по расписанию в фоне, но ограничен в 15 минутный интервал, какими современными способами можно реализовать такой, пускай и foregrground service c 5-10 секундным интервалом для API23 и выше?


Ответы (1 шт):

Автор решения: Maks

Повторять какие-то действия в активити можно так:

//update interval for widget
override val UPDATE_INTERVAL = 5000L

//Handler to repeat update
private val updateWidgetHandler = Handler()

//runnable to update widget
private var updateWidgetRunnable: Runnable = Runnable 
{
    run {
        //Update UI
        updatetime()
        // Re-run it after the update interval
        
 updateWidgetHandler.postDelayed(updateWidgetRunnable, UPDATE_INTERVAL)
    }

}

 // SATART updating in foreground
 override fun onResume() {
    super.onResume()
    
updateWidgetHandler.postDelayed(updateWidgetRunnable, UPDATE_INTERVAL)
}


// REMOVE callback if app in background
override fun onPause() {
    super.onPause()
    
updateWidgetHandler.removeCallbacks(updateWidgetRunnable);
}
→ Ссылка