Power in a frequency band: Spectral estimation versus time domain
Personally I'd go with the bandpass filter, unless there is a strong reason not to.

Much lower implementation complexity, CPU and memory usage.
You can get a continuous output signal at the same sample rate as the input signal. The FFT method will get you only one output per frame, so it's down sampled to the hop size.
No framing artifacts based on how your signal lines up with the frame grid: You can frame it, but you don't have to.
You can design fairly flexible &quot;ballistics&quot; into the detector: fast attack, slow decay, peak hold, lossy peak. I.e. it's easy to customize how fast/slow it reacts to different types of energy changes.

On the downside the choices for frequency weighting functions are fairly limited. If you need fancy frequency domain shapes the FFT may be better.