Hi Gabriel,
this is definitely not very hard to achieve.
1) Create a pending intent to wake up your service every 30 minutes. Your service could be an intent service.
2) in your service, in onCreate initialize a spiceManager, you will stop it after your requests are processed
3) in onCreate, after the spiceManager is created and started, execute your request.
4)  in onCreate, now wait for your listener to be called to. The easiest is to use a CountDownLatch and await for it.
5) in your listener, when either method is called, do your processing, if any and do a CountDownLatch.countDown().
Stéphane