新手请教Service疑惑

lwm1368 发布于 2014/07/18 09:08
阅读 98
收藏 0

Hi

1.Service运行在哪里,有人说是应用程序主线程,这个“应用程序主线程”该怎么理解?可以理解为一个进程吗?

2.应用程序退出后,Service还在后台运行,该如何解释呢?究竟应用程序退每退出啊?还是...

加载中
0
calvary
calvary

就理解为守护进程..

 除非shutdown.  否则都会一直在后台run的.

0
obaniu
obaniu

1,Service如果不设置为单独进程运行,是和activity运行在同一个进程的。如果它和activity运行在同一进程里面,它的主线程即是ui线程;

2,应用程序退出如果未调用stopService service是在后台运行的,所谓后台运行即是它干的活不出现界面,让用户感知不到。另外service也不是总是一直运行的,它可能会被系统杀掉释放资源。

lwm1368
lwm1368
Thanks droidwolf!
0
winfirm
winfirm

1、普通Service确实与主线程同处一个进程,处理耗时也会ANR,因此建议用IntentService.

2、应用退出或Service被Killed,是否重启还要看onStartCommand的返回值,和是否配置了android:process=":xxx"了。

可以参考下:https://github.com/winfirm/android-develop-toolkit/tree/master/PersistentServiceTest

lwm1368
lwm1368
Hi winfirm Thank you very much!
0
lwm1368
lwm1368

引用来自“droidwolf”的评论

1,Service如果不设置为单独进程运行,是和activity运行在同一个进程的。如果它和activity运行在同一进程里面,它的主线程即是ui线程;

2,应用程序退出如果未调用stopService service是在后台运行的,所谓后台运行即是它干的活不出现界面,让用户感知不到。另外service也不是总是一直运行的,它可能会被系统杀掉释放资源。

1,Service如果不设置为单独进程运行,是和activity运行在同一个进程的。如果它和activity运行在同一进程里面,它的主线程即是ui线程;

2,应用程序退出如果未调用stopService service是在后台运行的,所谓后台运行即是它干的活不出现界面,让用户感知不到。另外service也不是总是一直运行的,它可能会被系统杀掉释放资源。

0
lwm1368
lwm1368

引用来自“winfirm”的评论

1、普通Service确实与主线程同处一个进程,处理耗时也会ANR,因此建议用IntentService.

2、应用退出或Service被Killed,是否重启还要看onStartCommand的返回值,和是否配置了android:process=":xxx"了。

可以参考下:https://github.com/winfirm/android-develop-toolkit/tree/master/PersistentServiceTest

多谢~
返回顶部
顶部