I am using mqtt for messaging in my application. I have two versions B4A and B4i. The B4i version receives the messages even if the application is running in the background and no messages are lost. B4A only receives messages if the application is running and it is in focus. The messages are lost if the application put the background and running.
The whole point of push notifications is that you don't need to run your app for the message to arrive. The app will start automatically (the relevant service).
If it doesn't work for you then you haven't configured it correctly.