When data is being written to the Arduino, tx flashes, appears in the serial monitor
Being sent to it from what? Not the bluetooth connection.
When writing in the serial monitor, rx flashes, no data appears on the Android (Android code checked and double checked, all ok)
What do you mean by "when writing in the serial monitor"? When the Arduino sends data to the serial monitor, or when you type something and press send?
2) Why won't my device receive data without being connected to the computer (I'm using a 9V battery as replacement)?
How do you know it doesn't? With that code, the only proof you have that data came from the bluetooth is that it appears in the serial monitor. Taking away the ability to see data in the serial monitor does not prove that the Arduino isn't receiving data.