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?

On Apr 15, 6:27 pm, Kostya Vasilyev <[email protected]> wrote:
> Use AlarmManager for this, it's more reliable and easier to use than coding
> a thread with sleep/wait.
> 16.04.2011 2:24 пользователь "Diego Tori" <[email protected]>
> написал:
>
> > As the question implies, I am wondering how I could write a thread
> > that would call a system service and then wait a certain amount of
> > time before calling said system service's function that calls back to
> > onReceive from a registered BroadcastReceiver.
>
> > In other words, I am trying to call the Wifi scanning service
> > (registering a BroadcastReceiver with IntentFilters) within my custom
> > local service so I can get the current SSID's available and send them
> > back to the activities that are bound to this service. I know what I
> > will end up doing with the received data, which is not relevant to
> > this question. However, I will need to wait a certain amount of time
> > before calling startScan again within onReceive, and that is where I
> > am trying to determine the best course of action.
>
> > Here is what I have so far:
>
> > class MyWifiScanner extends BroadcastReceiver implements Runnable{
> > private boolean running;
> > private final int SLEEP_TIME = 10000;
> > private Object mSync = new Object();
> > WifiManager wifiMan;
> > Thread t;
> > public MyWifiScanner(){
> > //receiver registered with intent filters
> > wifiMan = (WifiManager)
> > SSIDListenerService.this.getSystemService(Context.WIFI_SERVICE);
> > t = new Thread(this);
> > t.start();
> > }
>
> > @Override
> > public void onReceive(Context context, Intent intent) {
> > //Received WiFi access point names, handle them
> > //Should I call wait on a sync object while syncronized with it for
> > said amount of time and then call notify???
> > syncrhonized(mSync){
> > mSync.wait(SLEEP_TIME);
> > mSync.notify();
> > }
> > }
>
> > @Override
> > public void run() {
> > while(running){
> > syncrhonized(mSync){
> > wifiMan.startScan();
> > }
> > }
>
> > }
> > }
>
> > Or would it make sense to just create a BroadcastReceiver object that
> > just calls Thread.sleep in the end of onReceive?
>
> > --
> > 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
>
>

-- 
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

Reply via email to