How to deal with this kind of situation?
You handle this the same way you handle all sorts of other situations, such as the user pressing BACK (thereby destroying the activity) and doing something in your UI to create a new instance of your activity.
Messaging from the service to the activity is a push interface, which is good for real-time updates. You also need a pull interface, where the activity can get the current status. And, in many cases, that also needs to take persistence into account, as the service, or even the entire process, may be long gone by the time a new activity instance needs to show those results.
Hence, the details will depend a lot on what the service is doing and how the UI can determine if that work is now completed and what the results are. That could involve querying a database, for example.