Hi,

  I don't really know how to phrase my question as I don't know what the
problem is. The symptom is that scheduled background activities are not
completed and I want to know why that is and how I can further debug/solve
it.

  This is happening with NewsRob and the background synchronization that
loads articles from Google Reader at a scheduled interval. To debug it I
meanwhile created a synthetic sample that shows the behavior too. A Thread
is started once an hour, acquires a partial wake lock, logs something,
sleeps for 30 minutes and then releases the partial wake lock and logs
again.


  So it should look something like this:
28 04:02: onReceive
28 04:02: In aquire
28 04:32: After release

  28 being the day of the month followed by the time and message.

  Unfortunately it doesn't look like that all the time ;-)  (Blank Lines and
<comment> added for readability).

28 05:02: onReceive
28 05:02: In aquire
28 05:32: After release

28 06:02: onReceive
28 06:02: In aquire
<After release missing>

28 07:02: onReceive
28 07:02: In aquire
<After release missing>

28 08:02: onReceive
28 08:02: In aquire
<After release missing>

28 09:02: onReceive
<In aquire missing>
<After release missing>
....

  So I suspect I do something wrong with the partial wake lock? But what?
And even if that is the case what should happen then? Shouldn't it continue
to run when a button on the device is pressed?

  So here is the full sample code: http://pastie.org/403831

  And here is the relevant method:

    public void onReceive(final Context context, Intent intent) {
        PersistentLog.log("onReceive", context);
        new Thread(new Runnable(){

            public void run() {
                PowerManager pm = (PowerManager)
context.getSystemService(Context.POWER_SERVICE);
                PowerManager.WakeLock wl =
pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SomeTag");
                wl.acquire();
                PersistentLog.log("In aquire", context);
                SystemClock.sleep(30 * 60 * 1000);
                wl.release();
                PersistentLog.log("After release", context);

            }
        }).start();
    }

  Any ideas?

Cheers,
Mariano

ps. Yes, I've seen the typo. Thanks for not bringing it up ;)

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to