On Fri, Apr 15, 2011 at 6:43 PM, Diego Tori <[email protected]> wrote: > That's the thing, it has to be short intervals in between scans since > this has almost real-time implications, no greater than 15 secs at > most, so I dunno how AlarmManager would fit into the equation. Is > there any chance you can show me how to modify the above code to > utilize AlarmManager to have it sleep before the onReceive gets called > again?
My interpretation of what you're trying to accomplish is that you have 1+ activities that need to hear about scan results, for a startScan() kicked off every so often. Let's assume a service being bound to by the activities is the right answer. I'm more than a tad skeptical on that, actually, but I'm trying to keep this simple relative to your apparent current implementation. Step #1: In onCreate() of the service, you register a BroadcastReceiver for SCAN_RESULTS_AVAILABLE_ACTION, then call startScan(). onCreate() then returns. Or, if this should not be going for the entire time the service is in memory, expose a method from your Binder that does the aforementioned work and returns. Step #2: When SCAN_RESULTS_AVAILABLE_ACTION occurs and your BroadcastReceiver is called with onReceive(), you: Step #2a: Arrange for your next scan (e.g., use Timer/TimerTask to call startScan() after some delay -- I agree that AlarmManager is not ideal for this particular implementation) Step #2b: Call getScanResults() and asynchronously notify the activities (your own broadcast Intent that the activities register for, or via a callback method the activities register with the service, or via a Messenger, or via a PendingIntent created by createPendingResult(), etc.). Step #3: In onDestroy(), you unregister your BroadcastReceiver and arrange to not invoke the next scan (e.g., cancel the Timer). -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy Android 3.0 Programming Books: http://commonsware.com/books -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

