hmmm. i'd suggest not killing any processes. the problem would be if 
under normal OS usage, the alarm is not activated. i can't say i 
understand exactly how the OS handles alarms, but perhaps forcefully 
killing processes interrupts it's workings.

On 10/30/09 4:04 AM, marc wrote:
> jeffrey, how did you solve the problem?
> i made a own process for the broadcastreceiver (as said in the linked
> theme), so i have 2 processes now:
> cycle:
> 1. user starts application
> 2. user schedules the alarm in the application
>
> current processes:
> - application
>
> 3. scheduled alarm expires, broadcastreceiver will be started
> 4. broadcastreceiver execute his work and SCHEDULES A NEW ALARM
>
> current processes:
> - application
> - broadcastreceiver
>
> 5. scheduled alarm expires, broadcastreceiver will be started
> 6. broadcastreceiver execute his work and SCHEDULES A NEW ALARM
>
>
> if i kill the application after step 2, the scheduled alarm survives.
> if i kill the alarm after step 4. the scheduled alarm is lost, step
> 5/6 will not be executed.
>
> how did you do it?!
>
> thank you for a answer.
> marc
>
>
> On Sep 13, 12:33 am, Jeffrey Blattman<jeffrey.blatt...@gmail.com>
> wrote:
>    
>> well, i found this,http://code.google.com/p/android/issues/detail?id=2886
>>
>> works for me now.
>>
>> On 9/12/09 2:00 PM, Mark Murphy wrote:
>>
>>
>>
>>      
>>> Jeffrey Blattman wrote:
>>>        
>>      
>>>> mark, "perhaps some sort of service" is a little vague.
>>>>          
>>      
>>> Generally speaking, if your manifest-registered BroadcastReceiver will
>>> be doing things that are short (say, under a second), you won't need one
>>> -- just do all your work in the BroadcastReceiver.
>>>        
>>      
>>> If you are going to do things that may take longer than that, such as
>>> uploading something via the Internet, you'll need to delegate that work
>>> to a service that can do things in a background thread (e.g.,
>>> IntentService). A manifest-registered BroadcastReceiver cannot fork a
>>> thread, and it is called on the "UI thread", which does not support
>>> time-consuming operations.
>>>        
>>      
>>>> the AM schedules an alarm that calls a receiver that does three things,
>>>>          
>>      
>>>> 1. updates some data that is shared with the activity
>>>>          
>>      
>>> You don't indicate where, but I'm going to assume the data is on the
>>> device, not the Internet.
>>>        
>>      
>>>> 2. sends notifications
>>>> 3. broadcasts back to another receiver that updates the activity, if
>>>> it's running (the activity registers / unregisters the receiver in
>>>> onResume(), onPause(), so it doesn't get called if it's paused or stopped).
>>>>          
>>      
>>>> i *could* have the scheduled BR call a service like in your example, but
>>>> why can't i just have the scheduled BR do the work?
>>>>          
>>      
>>> Assuming #1 above is not too time-consuming, you can.
>>>        
>>      
>>>> why would that make
>>>> a difference as to whether the BR is being called or not, which is the
>>>> root of my problem?
>>>>          
>>      
>>> In my first reply, I wrote:
>>>        
>>      
>>> "You could encounter that behavior if you registered your
>>> BroadcastReceiver via Java, instead of via the manifest."
>>>        
>>      
>>> You never stated, in any of your messages, how your code sets up your
>>> BroadcastReceiver. And, since the only way to really use AlarmManager
>>> effectively is to use a BroadcastReceiver registered via the manifest, I
>>> have been trying to steer you in that direction.
>>>        
>>      
>>> If I am correct, and presently your alarm-catching BroadcastReceiver is
>>> registered via registerReceiver() in some Java code, then that will only
>>> respond to alarms so long as whatever contains it (e.g., activity) is
>>> running. In this case, change your application logic to have the
>>> BroadcastReceiver be its own standalone public class (vs. an inner class
>>> of something else), dump the registerReceiver() and unregisterReceiver()
>>> calls for it, put it in the manifest via a<receiver>    element, and see
>>> if that improves your results. The example I have been pointing you to
>>> demonstrates receivers registered this way. There are a few other
>>> examples of this technique in the SystemEvents set of projects.
>>>        
>>      
>>> If you *do* have your BroadcastReceiver registered via the manifest,
>>> though, and you're not getting the alarms, then something else is afoot.
>>>        
>> --
>>      
>    

-- 

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

<<attachment: qr-gmail.png>>

Reply via email to