Hi Taufun,
Thanks for helping me think through this one.
I am thinking about your suggestion, which is a good one. Except I do not think I can design a configurable set of parameters that would be sufficient without requiring user input in real time.
The main challenge is different (even changing) user circumstance, preference, and intent. In one instance, the user might be intentionally using cell data for what he anticipates to be a very short time and does not want to forget to turn it off when he resumes watching his movie or listening to his "tunes" which he "thinks" are downloaded onto his phone... so for that situation, he would not want to "snooze" the monitor but be willing to put up with repeated reminders (a minute or two apart).
In another instance, the user may intend to use cell data for an extended period since he realizes he may not be near wifi for hours...so he would want to "snooze" the monitor for those number of hours (or hour by hour until wifi is available - which the monitor could communicate).
Another example is whether or not to include a sound in the notice - preference might vary depending on the circumstance.
I suppose, when the user wanted to make these changes in monitor "parameters", he could simply restart the app, make changes, and then close it (without stopping the b/g task)... this might work well enough. Perhaps this is what you had in mind.
In an earlier approach, I experimented with your alarmmanager facility. Frankly, I forget what problems I ran into (perhaps of my own making and ignorance), but the itoo background approach seemed more of a fit - until I started using the NotificationStyle callback events
BTW, is there a proper way to communicate reliably between the user and a background task?
Thanks for your thoughts and suggestions,
Randal