Think of it as this: the ping pong is happening too fast that the ball is getting lost.
If you are writing before reading and reading before writing, error will occur and the string will be lost.
So yes, one way of solving it is putting some time in between like Thread.sleep
DETAILED:
So this is happening because your arduino is still sending because it has not recognized that your android actually received. During that thread.sleep (1000), your arduino recognized that android received and changes to receive mode. That is why the string is able to be read from your arduino after one second.
If you want, you could loop your sending so that arduino will receive as soon as possible. However, certain circumstances can follow from the looping like receiving redundant strings.