title: Does the Android BluetoothGattCallback need a timely return?
body: <p>I am trying to figure out if the handlers in the BluetoothGattCallback one must implement are on a separate thread or if they need a timely return. In other words, am I able to do any lengthy calculations in, say, the onCharacteristicChanged() handler or should I stash the data in a queue or invoke a separate thread and immediately return? Is there the potential to lose data if I do not return from the callback quickly (say the device is streaming data)? I don't have such a device to test with to find out but it would be nice to know how the callbacks are designed so I would know how to design my handlers.</p>
  
  <p>Anyone know how this works under the hood or has sufficient experience to guess how it works? Thanks!</p>