Android中服务(Service)的两种启动方式

     Service是安卓四大组件之一,也是可执行的程序,也又自己的生命周期。创建、配置service和创建、配置Activity相似。都是从context派生出来的。《疯狂android讲义(第二版)》

     一、Service的第一种启动方式:start方式

            步骤:

           1、定义一个类继承Service

           2、在Mainfest.xml中配置该Service

           3、使用Context中的startService(Intent)方法启动Service

           4、使用stopService(Intent)方法停止该服务

       此方式启动Service生命周期如下:

       onCreat()-->onStartCommand()-->onDestory()

       如果该服务已经开启,不在执行onCreat(),而是会调用onStart()和onStartCommand().。停止服务的时候使用onDestory(),服务会只被停止一次。

特点:一旦服务开启跟调用者(开启者)就没有任何关系了。开启者退出了,开启者挂了,服务还在后台长期的运行。开启者不能调用服务里面的方法。

    二、Service的第二种启动方式:bind方式

          步骤:

         1、定义一个类继承Service

         2、在Mainfest.xml中配置该Service

         3、使用Context中的bindService(Intent, ServiceConnection, int)方式启动该Service

4、使用UnbindService(ServiceConnection)停止服务

使用这种start方式启动的Service的生命周期如下:

onCreate() --->onBind()--->onunbind()--->onDestory()

绑定服务不会调用onstart()或者onstartcommand()方法

特点:bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。绑定者可以调用服务里面的方法。



猜你喜欢

转载自blog.csdn.net/activeli/article/details/80566754
今日推荐