It is not an issue I am aware of. That facility is used extensively by our own apps, and I don't know of them having a problem with it.
On Jul 15, 3:01 am, "Jaikishan Jalan" <[EMAIL PROTECTED]> wrote: > Hello, > > As I mentioned in my last email about the random behavior of my application, > I have observed that my application many times does not receive > BOOT_COMPLETED action. Due to this my background process does not get > started. Is this a known bug that it is not definite that your > intentreceiver (listening to BOOT_COMPLETED) will not get executed everytime > when you launch the emulator? I have verified this by simply printing a log > message. Sometimes the message is logged ( when my application receive the > intent ) and many times it does not. Can anyone from Google Android team > confirm this? > > > > On Tue, Jul 15, 2008 at 3:21 PM, hackbod <[EMAIL PROTECTED]> wrote: > > > On Jul 14, 6:31 pm, Mark Murphy <[EMAIL PROTECTED]> wrote: > > > To make sure I'm interpreting this correctly...the IntentReceiver that > > > is the recipient of the Intents raised by the AlarmManager must be one > > > registered in AndroidManifest.xml (vs. one registered via > > > registerReceiver()), or else it will fall out of memory if/when the > > > service does. And at that point, the AlarmManager is (presumably) still > > > set up to send Intents to a non-existent IntentReceiver. > > > Yep. So it will just broadcast the Intent, there will be nobody > > around to receive it, and *poof* that is the end of it. > > > > I hadn't thought that all the way through, but it makes sense. That's a > > > facet of top-level IntentReceivers that I hadn't appreciated -- they're > > > "wired into" the Android runtime in such a way that they're always > > > registered, regardless of memory conditions. > > > Yep, this is one of the key uses of receivers, they allow your > > application to declare events it is interested in finding out about > > even when it is not running. (Also they are a little cleaner to use > > with the alarm manager, since because they are published in the > > manifest, they are associated with an actual component, so the Intent > > you make can be explicitly targeted at that component rather than > > defining an ad-hoc action name.) > > > > Question: for Jaikishan's scenario, does he need the service? In other > > > words, does the IntentReceiver that handles Intents from the > > > AlarmManager have any particular speed requirement? I was under the > > > impression that IntentReceivers tied to activities might run on the UI > > > thread and so had to get their task done quickly...but will an > > > AlarmManager-triggered IntentReceiver have that same limitation? Or can > > > it do some network I/O and such before returning from onReceiveIntent(), > > > without impacting any foreground activity? > > > The onReceive() function does run on the main thread, so you can't > > spend a lot of time in it. Currently, even if your main thread is not > > being asked to do other things like handle input events, if the > > receiver takes more than 10 seconds then the user will get an > > Application Not Responding dialog. So if you are going to do a longer- > > running (or asynchronous) thing, you will need to have that wrapped in > > a service. Of course networking stuff definitely falls in this > > category. > > > > I'm just trying to figure out the right pattern for this case. I don't > > > think it's a stretch to say that a fair number of Android apps will be > > > of the poll-network-for-changes-and-do-something pattern, and so this is > > > an important area for us to get a best practice down pat. > > > The "Alarm Service" sample code in ApiDemos at > > >http://code.google.com/android/samples/ApiDemos/src/com/google/androi... > > is intended to provide the best practices for this. The current > > example is a little overly complex because of the need of the > > intermediate receiver. In a future SDK where you can have the alarm > > manager directly start a service, this is a lot cleaner. > > > > Heck, I'm > > > hoping we'll work up a common service or something, where activities can > > > register URLs to be polled and Intents to be fired if/when those > > > documents change, so we can optimize network access and minimize battery > > > consumption. > > > Yeah this would be a useful facility. > > -- > Thanks, > Jaikishan --~--~---------~--~----~------------~-------~--~----~ 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] Announcing the new M5 SDK! http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

