When receiving asynchronous calls from the AndroidIBeaconLibrary, you must wrap any code that updates the user interface inside blocks like below:
runOnUiThread(new Runnable() {
public void run() {
...
}
}
This is a general rule for building Android apps, and isn't something that specifically changed from the 0.6 to 0.7.6 version of the Android iBeacon Library. Sometimes thread handling is indeterminate, so it is certainly possible that this happened to work most or all the time in version 0.6. The fact remains is that you need to make sure this processing is run on the UI thread. It should not affect performance.
I think the most likely explanation for why you see a "delay" and some beacons "getting ignored" is because of the way the setActiveBeaconListForBeaconLogFromBackgroundRangingData
method is designed. You must write it to take into account the fact that you WILL NOT get a complete list of all visible beacons on every callback. You must maintain a separate list in your UI, and merge in any newly visible iBeacons passed to this method. Likewise, you must programmatically drop off any iBeacons from this list that have not been reported to be visible within a few seconds.
Again, this is not something that specifically changed between the library versions, but I don't doubt that subtle timing differences could make the issue more acute after an upgrade.