Activities are meant to run in foreground..There is a given lifecycle which is based on how the user interacts with the app. Therefore you actually shouldn't be trying to "start your activity in background", because it does not make sense..What you can do though is somehow alter how the activity reacts on events from outside of it.. You can for example create a new boolean field in your activity and set it to false everytime in onPause() and to true in onResume()...
You could then check for it when starting the new activity and actually only start it when true. Otherwise just set the field to true and then in onResume() start the activity when the field would be true..
Also you should take in account, that background activity could be killed by the system at any time. Activity should deallocate all system resources and stop it's work when it goes to background..Only then you can be sure your app won't go into an unpredictable state.. For background tasks you should go with services, which are basically "activities without UI" (I don't believe I've said that) - parts of your app running in the background.