Engineering manager Ari Grant explained the fixes in a Facebook post:
The first issue we found was a “CPU spin” in our network code. A CPU spin is like a child in a car asking, “Are we there yet? Are we there yet? Are we there yet?,” with the question not resulting in any progress to reaching the destination. This repeated processing causes our app to use more battery than intended. The version released today has some improvements that should start making this better.
The second issue is with how we manage audio sessions. If you leave the Facebook app after watching a video, the audio session sometimes stays open as if the app was playing audio silently. This is similar to when you close a music app and want to keep listening to the music while you do other things, except that in this case, it was unintentional and nothing kept playing. The app isn’t actually doing anything while awake in the background, but it does use more battery simply by being awake. Our fixes will solve this audio issue and remove background audio completely.
The issues we have found are not caused by the optional location history feature in the Facebook app or anything related to location. If you haven’t opted into this feature by setting location access to always and enabling location history inside the app, then we aren’t accessing your device’s location in the background. The issues described above don’t change this at all.
iOS users: Have you experienced any battery life issues?