What I've done so far seems easier than that, Erel. The data that I need to send is simple JSON datasets, and I am storing them in memory as a List, and using File.Writelist and File.Readlist to save the list as necessary.
When the app starts up, it checks to see if the file exists, and if it does, it loads the JSON items from it into a List. Each time I am able to remove some or all of the items in the List because I have connectivity again, I write the updated file back again. And each time I have to add an item to the List due to lack of connectivity, I also update the file again.
I have all this working in a short test program, and I'm currently in the process of moving the test code into my app.
I have still to write the 15 minute timer code that attempts to send any buffered data, but that shouldn't be a problem. I was thinking about using a single sub called from the main program event and the timer event, but it might be easier to use two separate subs unless B4A has some type of mutex facility. Otherwise, if the timer event happens at the same time as the main program event, bad things might happen.