Cómo poner en cola los datos para el envío del servidor en Android

Estoy trabajando en una aplicación de Android con una función de correo electrónico. Quiero que mis usuarios puedan redactar y enviar correos electrónicos en modo avión. Para eso necesito algún tipo de cola que pueda verificar si hay red y enviar, etc. Me imagino que esto debe haberse hecho cientos de veces. Pero no estoy realmente seguro de por qué mis búsquedas no están apareciendo mucho. ¿Alguien sabe de una biblioteca o proyecto git que pueda usar para lograr esto? Si no, ¿alguien sabe cómo lograr esto?

Creo que se llama elQueue and send pattern.

Actualizar

Estoy comenzando una recompensa por esta pregunta. Lo que espero es un ejemplo de trabajo que no use SMS. Para mi caso particular, estoy trabajando en un proyecto de Android de Appengine Connected. El cliente necesita enviar datos (String, Bitmap, etc. bajo un POJO particular, digamos Dog) al servidor. Quiero poder poner en cola estos datos de alguna manera. Puedo usar Gson para guardar datos en un archivo, etc. La conclusión es que necesito poder verificar la red. Cuando hay red, elimino mi cola en el servidor. Si no hay red, sigo guardando en la cola.

Mi cola puede serQueue<Dog>, dóndeDog es mi clase con campos comoBitmap (o ruta a la imagen),String, longetc.

Estoy buscando un ejemplo de trabajo. Puede ser muy simple, pero el ejemplo debe funcionar. Un git zip sería genial. Estoy renunciando a casi la mitad de mis puntos por esta pregunta.

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta