Still occupies some amount of memory though, and the service's onCreate 
might not be cheap. 

Anyways, I guess this is one of those little undocumented things you just 
have to learn. Do not rely on START_NOT_STICKY if you both start and bind 
to a service if you don't want the service to stay around forever as a 
cached process after you've unbound it. 

On Thursday, August 9, 2012 7:15:09 PM UTC+2, Dianne Hackborn wrote:
>
> Binding to a service can only make that service's process as important as 
> the process of the client binding to it.  If the client process is in the 
> background, it can't bring the service up beyond the background, so it 
> doesn't count as a running process but a cached process.
>
> On Thu, Aug 9, 2012 at 3:09 AM, Johan Appelgren 
> <johan.a...@gmail.com<javascript:>
> > wrote:
>
>> Ok, thanks. But shouldn't it (non-sticky service with no active 
>> connections, nothing is bound to it) show up in the Running Services view 
>> when it has been restarted? Or is that only for sticky services?
>>
>>
>> On Thursday, August 9, 2012 8:35:50 AM UTC+2, Dianne Hackborn wrote:
>>
>>> Binding and starting are completely orthogonal things.  You bind to a 
>>> service to establish a persistent connection to it.  You start a service to 
>>> have it run for some undefined amount of time separately from the caller. 
>>>  A service needs to remain created as long as it is being asked to do 
>>> either of these things.
>>>
>>> If you don't want it to stay created, either don't bind to it when you 
>>> don't want it around, or don't use BIND_AUTO_CREATE so you aren't forcing 
>>> it to remain created while bound to it.
>>>
>>> On Wed, Aug 8, 2012 at 10:46 PM, Johan Appelgren 
>>> <johan.a...@gmail.com>wrote:
>>>
>>>> So START_NOT_STICKY has no effect once I've bound to it even if I 
>>>> unbind? I must explicitly use stopService if the service has ever been 
>>>> bound to even if there are no more connection? 
>>>>
>>>>
>>>> On Thursday, August 9, 2012 2:54:41 AM UTC+2, Dianne Hackborn wrote:
>>>>
>>>>> If you bind to it with BIND_AUTO_CREATE, you are saying you want the 
>>>>> service to be created as long as you are bound to it.
>>>>>
>>>>> From the documentation:
>>>>>
>>>>> A service can be both started and have connections bound to it. In 
>>>>> such a case, the system will keep the service running as long as either 
>>>>> it 
>>>>> is started or there are one or more connections to it with the 
>>>>> Context.BIND_AUTO_CREATE flag.
>>>>>
>>>>> http://developer.android.com/**r**eference/android/app/Service.**h**
>>>>> tml <http://developer.android.com/reference/android/app/Service.html>
>>>>>
>>>>> On Wed, Aug 8, 2012 at 1:52 PM, Johan Appelgren 
>>>>> <johan.a...@gmail.com>wrote:
>>>>>
>>>>>> If I have a simple service that returns START_NOT_STICKY in 
>>>>>> onStartCommand and I both start it explicitly (startService) and bind to 
>>>>>> it 
>>>>>> (bindService) in onCreate of my activity the service gets recreated 
>>>>>> after 
>>>>>> it has been killed over and over again. I unbind the service in onPause 
>>>>>> of 
>>>>>> my activity. 
>>>>>>
>>>>>> Logcat shows that the service is scheduled for restart and is 
>>>>>> restarted over and over again. The service is not shown as running after 
>>>>>> it's been recreated in Settings -> Apps -> Running. 
>>>>>>
>>>>>> 08-08 21:57:25.081 D/ExampleActivity(23715): onPause
>>>>>> 08-08 22:11:44.480 W/ActivityManager(  306): Scheduling restart of 
>>>>>> crashed service com.example.service/.**MainServi**ce in 5000 ms
>>>>>>  08-08 22:11:49.519 I/ActivityManager(  306): Start proc 
>>>>>> com.example.strangeservice for service com.example.service/.**
>>>>>> MainServi**ce
>>>>>> 08-08 22:11:49.597 D/ExampleService(24079): onCreate
>>>>>>  08-08 22:27:38.551 I/ActivityManager(  306): No longer want 
>>>>>> com.example.service (pid 24079): hidden #16
>>>>>> 08-08 22:27:38.574 W/ActivityManager(  306): Scheduling restart of 
>>>>>> crashed service com.example.service/.**MainServi**ce in 5000ms
>>>>>> 08-08 22:27:43.629 I/ActivityManager(  306): Start proc 
>>>>>> com.example.strangeservice for service com.example.service/.**
>>>>>> MainServi**ce: pid=24401 uid=10101 gids={1028}
>>>>>> 08-08 22:27:43.785 D/ExampleService(24401): onCreate
>>>>>> 08-08 22:49:59.871 I/ActivityManager(  306): Process 
>>>>>> com.example.service (pid 24401) has died.
>>>>>> 08-08 22:49:59.871 W/ActivityManager(  306): Scheduling restart of 
>>>>>> crashed service com.example.service/.**MainServi**ce in 5000ms
>>>>>> 08-08 22:50:04.934 I/ActivityManager(  306): Start proc 
>>>>>> com.example.strangeservice for service com.example.service/.**
>>>>>> MainServi**ce: pid=24857 uid=10101 gids={1028}
>>>>>> 08-08 22:50:05.051 D/ExampleService(24857): onCreate
>>>>>>
>>>>>> I thought START_NOT_STICKY meant that once it gets killed by Android 
>>>>>> it wont be restarted unless I explicitly start it again. Or does binding 
>>>>>> to 
>>>>>> a service override that and make the service sticky?
>>>>>>
>>>>>> I've been testing this on a Galaxy Nexus with stock Android 4.1.1.
>>>>>>
>>>>>>  -- 
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Android Developers" group.
>>>>>> To post to this group, send email to android-d...@**googlegroups.com
>>>>>>
>>>>>> To unsubscribe from this group, send email to
>>>>>> android-developers+**unsubscribe**@googlegroups.com
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/**group**/android-developers?hl=en<http://groups.google.com/group/android-developers?hl=en>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> Dianne Hackborn
>>>>> Android framework engineer
>>>>> hac...@android.com
>>>>>
>>>>>
>>>>> Note: please don't send private questions to me, as I don't have time 
>>>>> to provide private support, and so won't reply to such e-mails.  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 android-d...@**googlegroups.com
>>>> To unsubscribe from this group, send email to
>>>> android-developers+**unsubscr...@googlegroups.com
>>>> For more options, visit this group at
>>>> http://groups.google.com/**group/android-developers?hl=en<http://groups.google.com/group/android-developers?hl=en>
>>>>
>>>
>>>
>>>
>>> -- 
>>> Dianne Hackborn
>>> Android framework engineer
>>> hac...@android.com
>>>
>>> Note: please don't send private questions to me, as I don't have time to 
>>> provide private support, and so won't reply to such e-mails.  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 
>> android-d...@googlegroups.com<javascript:>
>> To unsubscribe from this group, send email to
>> android-developers+unsubscr...@googlegroups.com <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/android-developers?hl=en
>>
>
>
>
> -- 
> Dianne Hackborn
> Android framework engineer
> hac...@android.com <javascript:>
>
> Note: please don't send private questions to me, as I don't have time to 
> provide private support, and so won't reply to such e-mails.  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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to