The battery drain problem is actually pretty easy to solve if you don't want to do any background task/processing.
Just create a boolean variable "isactive" and set it to your current app state (i.e. whether it's in foreground or not; use events for this).
Then, depending on this variable, either call "pollEvent()" (app is in foreground) or call "waitEvent()" (app is in background).
This way your app will process all events, but it won't run its main loop while not being active.