I run my app, which uses GPS and Bluetooth, then hit the back button so it goes off screen. I verified via LogCat that the app's onDestroy was called. OnDestroy removes the location listeners and shuts down my app's Bluetooth service. I look at the phone 8 hours later and half the battery charge has been consumed, and my app was responsible according the phone's Battery Use screen. If I use the phone's Settings menu to Force Stop the app, this doesn't occur. So my question is: do I need to do something more than remove the listeners to stop Location Services from consuming power? That's the only thing I can think of that would be draining the battery to that degree when the app is supposedly dormant.
Here's my onStart() where I turn on the location-related stuff and Bluetooth:
@Override
public void onStart() {
    super.onStart();
    if(D_GEN) Log.d(TAG, "MainActivity onStart, adding location listeners");
    // If BT is not on, request that it be enabled.
    // setupBluetooth() will then be called during onActivityResult
    if (!mBluetoothAdapter.isEnabled()) {
        Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
        // Otherwise, setup the Bluetooth session
    } else {
        if (mBluetoothService == null) 
            setupBluetooth();
    }
    // Define listeners that respond to location updates
    mLocationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, GPS_UPDATE_INTERVAL, 0, this);    
    mLocationManager.addGpsStatusListener(this);
    mLocationManager.addNmeaListener(this);
}
And here's my onDestroy() where I remove them:
public void onDestroy() {
    super.onDestroy();
    if(D_GEN) Log.d(TAG, "MainActivity onDestroy, removing update listeners");
    // Remove the location updates
    if(mLocationManager != null) {
        mLocationManager.removeUpdates(this); 
        mLocationManager.removeGpsStatusListener(this);
        mLocationManager.removeNmeaListener(this);
    }
    if(D_GEN) Log.d(TAG, "MainActivity onDestroy, finished removing update listeners");
    if(D_GEN) Log.d(TAG, "MainActivity onDestroy, stopping Bluetooth");
    stopBluetooth();
    if(D_GEN) Log.d(TAG, "MainActivity onDestroy finished");
}