Como enfileirar dados para envio do servidor no android

Estou trabalhando em um aplicativo Android com um recurso de email. Quero que meus usuários possam redigir e enviar e-mails enquanto estiverem no modo avião. Para isso, preciso de algum tipo de fila que possa verificar se há rede e enviar, etc. Imagino que isso deve ter sido feito centenas de vezes. Mas não sei ao certo por que minhas pesquisas não estão aparecendo muito. Alguém sabe de uma biblioteca ou projeto git que eu possa usar para fazer isso? Se não, alguém sabe como fazer isso?

Eu acredito que é chamado deQueue and send pattern.

Atualizar

Estou começando uma recompensa nesta questão. O que espero é um exemplo de trabalho que não use o SMS. Para o meu caso em particular, estou trabalhando em um projeto Android conectado ao Appengine. O cliente precisa enviar dados (String, Bitmap, etc sob um POJO específico, digamos Dog) para o servidor. Quero poder enfileirar esses dados de alguma forma. Eu posso usar o Gson para salvar dados em arquivos, etc. O ponto principal é que preciso verificar a rede. Quando há rede, retiro a fila da minha fila no servidor. Se não houver rede, continuo salvando na fila.

Minha fila pode serQueue<Dog>, OndeDog é minha classe com campos comoBitmap (ou caminho para a imagem),String, long, etc.

Eu estou procurando um exemplo de trabalho. Pode ser muito simples, mas o exemplo deve funcionar. Um zip git seria ótimo. Estou desistindo de quase metade dos meus pontos para esta pergunta.

class Dog{
   String dogname;
   String pathToImage;
   int dogAge;
   //etc.
}

//Design pattern for sending Dog to server
0) Unmarshall queue from file using Gson
1) Add dog to queue
2) If there is network, loop through queue and send data to server
3) if there is no network save queue to file

//Ideally, as soon as there is network, the method should be able to detect so and run to send data to server

questionAnswers(1)

yourAnswerToTheQuestion