I need to hit an endpoint to update the room database every some amount of time. The way I designed this is to turn the call stack containing the loop into a Job, created by a coroutine scope. The question I have in mind is: where is the best place to start this job, at the view model or at the activity? If feels more natural to me to think that view model is the way to go, specially in single activity applications with dozen of navigation. But, since I'm using Hilt, during navigation of screens that share the same view model the instance is being destroyed every single time, so the Job finishes and starts again at each route. Any ideas on how I can improve my solution?