As far as I know you install one 'App' in Android. This App has the UI and it can also start a 'service'. The service will usually not be terminated and may open the app or send a notification.
So you need inter-process communication to get/send messages via service and to show/enter them in the app. Sounds complicated but it's not. You can either call methods directly (blocking, not so good) or use an internal queue.