Service

Service是一个可以在后台长时间运行操作且没有用户界面的应用组件。(运行在主线程中,不能做耗时操作)

Service的两种启动方式:
1.context.startService() ->onCreate()- >onStart()->Service running-->(如果调用context.stopService() )->onDestroy() ->Service shut down
1.如果Service还没有运行,则调用onCreate()然后调用onStart();
2.如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。
3.调用stopService的时候直接onDestroy,
4.如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再 启动起来后可以通过stopService关闭Service。

2.context.bindService()->onCreate()->onBind()->Service running-->onUnbind() -> onDestroy() ->Service stop
1.onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。
2.这个时候会把调用者和Service绑定在一起,Context退出了,Service就会调用onUnbind->onDestroy相应退出。
3.所以调用bindService的生命周期为:onCreate --> onBind(只一次,不可多次绑定) --> onUnbind --> onDestory。

Activity被销毁后很难对Thread进行管理,用Service创建Thread,能避免Activity销毁后,无法获取之前创建的Thread实例。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【Android Service】 Service 简介(★★★) 很多情况下,一些与用户很少需要产生交互的应用程...
    Rtia阅读 8,307评论 1 21
  • 什么是Service? Service,俗名服务。在Android系统中,Service与Activity就...
    飞天_shine阅读 1,163评论 0 0
  • 保护好那微弱的“”希望之光“”,这就是全部生命的意义吧
    Air糖阅读 1,482评论 0 0
  • 今天小雨淅淅沥沥下个不停,因咳嗽了一周还不见好转,加上孩子明天开学晚上没能去上课。在家看半天书《解忧杂货店...
    阳光1216阅读 1,345评论 0 0