Are you suggesting that I should use startService() itself as a
notification to the service ? I guess I can override onStart() method
which is called everytime startService() is called to do the job. Let
me try this approach and see if it works.

Thanks,
Sarath

On Tue, Jan 13, 2009 at 12:56 PM, Sarath Kamisetty
<[email protected]> wrote:
> I did that and the service starts (I can see the log message from
> onCreate() method) but i want to know how to let the service know that
> activity updated data from that point onwards ? Isn't there any other
> way other than AIDL ?
>
> On Tue, Jan 13, 2009 at 12:25 PM, Dianne Hackborn <[email protected]> wrote:
>> Call startService() like the API demo does.  There is a sample showing
>> exactly this kind of thing.
>>
>> On Tue, Jan 13, 2009 at 12:03 PM, Sarath Kamisetty
>> <[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> I looked at the other thread where running service in a separate
>>> process by itself is discouraged and considered rare. In my case, my
>>> activity and the service both use SQLite so I don't expect to see
>>> synchronization issues. So, how do I bring my service to life from the
>>> activity, let it process new information, and put itself to sleep
>>> until a specific time (which could change every time) or by another
>>> notification by the activity ? Can I use broadcast intent/receiver
>>> here ? With the intents, invoking service seems to be easy. All my
>>> activity needs to tell the service is that some information is updated
>>> (service knows where to look for this information). If the service is
>>> not running, it should be started, if it is scheduled to run in future
>>> (through AlarmManager) that should be canceled and rescheduled using
>>> new timer value calculated after processing the information.
>>>
>>> I am thinking of the following:
>>>
>>> activity activates services by doing the following:
>>>
>>>        Intent intent = new Intent(this, myservice.class);
>>>        this.sendBroadcast(intent);
>>>
>>> In the service, I create a task that runs a thread at some point in
>>> future. When the service is notified of this intent, I will check if a
>>> thread is scheduled to run and if so, I want to cancel the scheduled
>>> task. Then I will process new information and then re-schedule a new
>>> task, if needed. Does this sound like a good approach ? With this I
>>> don't seem to require any aidl.
>>>
>>> Thanks,
>>> Sarath
>>>
>>> On Mon, Jan 12, 2009 at 3:59 PM, Dianne Hackborn <[email protected]>
>>> wrote:
>>> > Yes, all of the components of your app share data in the same place of
>>> > the
>>> > filesystem, regardless of the process they run in, so any changes you
>>> > make
>>> > there will be seen by all of them.  Of course you have to be careful if
>>> > you
>>> > have multiple processes modifying the same file that they don't step on
>>> > each
>>> > other.  SQLite takes cares of this for you.
>>> >
>>> > See, however, my previous e-mail; from your description this doesn't
>>> > sound
>>> > like a case where having a service in a separate process is necessarily
>>> > a
>>> > good idea.
>>> >
>>> > And yes, using bindService() (with the appropriate flag passed in) will
>>> > have
>>> > the service running as long as that client is bound to it.
>>> >
>>> > On Mon, Jan 12, 2009 at 12:49 PM, Sarath Kamisetty
>>> > <[email protected]> wrote:
>>> >>
>>> >> Hi,
>>> >>
>>> >> I am a little bit confused about what can/cannot a service access when
>>> >> it is running as an independent process (remote service). I have a
>>> >> database created by my activity when it is run the 1st time. Later on
>>> >> this activity adds entries to this database. I don't want my service
>>> >> running all the time, instead the service uses AlarmManager to
>>> >> schedule itself to run (sometimes it doesn't know when to run, so has
>>> >> to suspend itself forever until notified by the activity). For
>>> >> activity to service communication aidl will be used, but I was
>>> >> wondering if the service, if run as independent process, can access
>>> >> the database created and updated by the activity ? Can an application
>>> >> have multiple processes ? If so, I guess as long as the service and
>>> >> activity belong to same application I think the answer is yes, but can
>>> >> someone please confirm ? or is there a need in this case to have
>>> >> activity and service in completely different applicaitons accessing
>>> >> shared database (don't know if this is possible) ?
>>> >>
>>> >> The other help I am looking for is, in this case how should my
>>> >> activity be invoking the service ? If I use bindService() will that
>>> >> make service run when the activity is running (something I don't
>>> >> need/want to happen) ? or do I need to use some intent and let the
>>> >> system notify my service ? Can anyone suggest how to design this ?
>>> >>
>>> >> Thanks,
>>> >> Sarath
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Dianne Hackborn
>>> > Android framework engineer
>>> > [email protected]
>>> >
>>> > Note: please don't send private questions to me, as I don't have time to
>>> > provide private support.  All such questions should be posted on public
>>> > forums, where I and others can see and answer them.
>>> >
>>> >
>>> > >
>>> >
>>>
>>>
>>
>>
>>
>> --
>> Dianne Hackborn
>> Android framework engineer
>> [email protected]
>>
>> Note: please don't send private questions to me, as I don't have time to
>> provide private support.  All such questions should be posted on public
>> forums, where I and others can see and answer them.
>>
>>
>> >>
>>
>

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