I am working on something similar to what you are doing right now. I found that the main issue why we can't sent the updates to UI is because both background_service and UI or main serivce is isolated from each other.
Since these services are isolated it can not be shared directly. I tried to do with localstorage. but the problem is that it can't be streamed directly to UI . since its local storage the changes are not streamed. Now what I am hoping is that it might work by using channels, or ports to listen to changes from background_service . to main service.
background_service and main service are isolated from each other. So the instance created in these service is not shared directly.