There was a time when it was very easy to scan for beacons in background on Android. You just set up a service using the standard Bluetooth APIs. Over the years, Google has crippled the ability to perform reliable background processing to the point where it’s nearly as bad as on iOS. David Young says:
“Today, Android Services are often more trouble than they are worth”
David has an answer to the problem in the form of using Android BroadcastReceivers and threads. He explains the problem and solution on his blog. David also has a useful Github app demonstrating the technique.