AppWidgetProvider *is* a broadcast receiver, so you can handle your alarm
actions right there.

Some broadcasts can't be received by declaring intent filters in the
manifest, I believe battery state is one of those.

No such limitation with your own alarm action, though, so there isn't a
chicken and egg (= service and receiver) issue here, as for the battery
broadcast.

--
Kostya Vasilyev -- http://kmansoft.wordpress.com
04.02.2011 1:57 пользователь "Jeffrey" <[email protected]> написал:
> One question on AlarmManager, the examples I'm seeing all say to set
> up a broadcast receiver, but wouldn't that defeat the purpose using
> alarmmanager to prevent running a BroadcastReceiver in a service? Or
> is the AppWidgetProvider class able to receive the broadcast?
>
> On Feb 3, 4:21 pm, Jeffrey <[email protected]> wrote:
>> Wow, thank you! Now I guess I need to look up a tutorial on using the
>> AlarmManager.
>>
>> On Feb 3, 7:46 am, Mark Murphy <[email protected]> wrote:
>>
>>
>>
>>
>>
>>
>>
>> > On Wed, Feb 2, 2011 at 9:57 PM, Jeffrey <[email protected]>
wrote:
>> > > I've got a battery widget I'm working on and I have a broadcast
>> > > receiver for when the battery status changes, but I don't know where
>> > > it needs to go. I tried putting it in the Configuration activity, but
>> > > I keep getting this error:
>>
>> > > Activity com.android.blah has leaked IntentReceiver com.android.blah
>> > > $2@43758c58 that was originally registered here. Are you missing a
>> > > call to unregisterReceiver()?
>>
>> > > Please let me know what I'm doing wrong, I'm pretty new to broadcast
>> > > receivers, so if I'm missing something basic please let me know.
>>
>> > I wouldn't use a broadcast receiver in this case. That would require
>> > you to keep a service running 24x7, to host the receiver, and that is
>> > bad for business.
>>
>> > Rather, just check the battery level periodically:
>>
>> >  - via updatePeriodMillis in your metadata, or
>> >  - via AlarmManager, if the 30-minute minimum for updatePeriodMillis
>> > will be too long (probably would be, in this case)
>>
>> > To check the battery level, call registerReceiver() with the
>> > ACTION_BATTERY_CHANGED IntentFilter, but a null BroadcastReceiver. The
>> > Intent that is returned to you will be the last-broadcast battery
>> > change Intent, from which you can get the last-known battery level.
>>
>> > You can even let the user configure the polling period, to balance
>> > between accuracy and battery consumption by the battery app widget.
>>
>> > --
>> > Mark Murphy (a Commons Guy)http://commonsware.com|
http://github.com/commonsguyhttp://commonsware.com/blog|http://twitter.com/commonsguy
>>
>> > Android Training in London:http://bit.ly/smand1andhttp://bit.ly/smand2
>
> --
> 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]<android-developers%[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