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