The service will usually not be terminated
Yes, "usually", Android is free to terminate and reschedule non-foreground services for a restart in certain situations. But you should use non-foreground services for your XMPPTCPConnection. see https://github.com/Flowdalic/asmack/wiki/Should-applications-using-aSmack-use-fo reground-Services%3F
and may open the app or send a notification.
It should open an Activity, not an App.
So you need inter-process communication to get/send messages via service
You should design your App so that Service and Activity are components of the same application (and (dalvik) process). This removes the need for inter-process communication (IPC).