android学习笔记2——Service

来源:互联网 发布:电脑图标美化软件 编辑:程序博客网 时间:2024/05/18 01:29

service

一、为什么使用Service

    service和acitivity主要的区别就是Acitivity具有用户界面,而service没有用户界面,是可以长期运行的后台程序。即使用户将进程切换到后台,服务仍然可以再后台运行。
    什么时候使用thread,什么时候service? service一般情况下都是在后台长期运行的,不需要与用户打交道的。如果需要与用户打交道、交互,那么可以使用thread。

二、怎么使用Service

    service两种形式

    1、started
    2、bound

    service两种启动方式

    1、startService()
    2、bindService()

    如何通过这两种方式启动

    注意service都是运行在主线程中的,执行过程中不应该有阻塞的任务执行,否则会造成ANR。

    1)startService()

    通过传递Intent参数,使用组件的startService即可启动服务。这样服务就可以运行。一般可以继承IntentService。

    2)bindService()

    通过bindService方法绑定服务,在acticity中可以控制服务的调用。与startService方式不同的最大特征:可以用来activity与service进行通信。多个client可以同时绑定一个服务。

    生命周期

    start启动方式的:

    context.startService() → onCreate() → onStartCommand() → Service running → (stopService) → onDestroy() → Service stop

    bind启动方式的:

    context.bindService() → onCreate() → onBind() → Service running → onUnbind() → onDestroy() → Service stop

后记

    目前仅仅了解的基本的使用方法。官网上说可以使用bind方式进行程序间IPC,目前还没有研究。

0 0