关闭

Service的应用思路

75人阅读 评论(0) 收藏 举报

-service 的作用:

                          与activity类似,都代表可执行的程序,service主要用于不需要与用户进行界面交互的场合,因为service没有界面。

service 的好处:

                           为避免Activity中的代码过多,使得代码不便于理解,可以将不需要于用户界面进行交互的代码写在Service中,

          便于自己和别人读取。 

 service启动的两种方式:

                     1.   startService()   方法                    2.bindService()方法

                   1.定义service的子类继承Service,在Service中定义oncreate()方法(在service被创建时回调,从此以后不再执行),定义onStartContent()方法

        (每次启动service时都会调用该方法,多次启动service时都会执行该方法), 在activity中,开启service,在合适的场合调用    startService();

                     service与访问者之间没有关联,即使访问者退出了,Service也仍然运行,所以必须调用stopService() 访问来停止service,防止发生OOM(内存溢出)

           最后销毁 onDestroy() ;

                    适用范围: 访问者与Service之间无法进行数据交换、通信。

                  

                   2.  public boolean bindService(Intent service, ServiceConnection conn, int flags) {
     
                                          return super.bindService(service, conn, flags);
                         }

                       在Activity中定义bindService() 方法(该方法只会执行一次), 其中他们的参数依次为

                                     (1)  service 为需要进行绑定的Service ;  

                                     (2).conn 为ServiceConnection对象,当service与activity连接成功后,会回调该对象的 onServiceConnected(ComponentName name,

                           IBinder service)方法   (其中service为在 Service类 中定义的IBinder对象) , 当发生异常终止后,会回调该对象的

                           onServiceDisconnected(ComponentName  name) 方法。

                       在Service类中,定义onCreate() 方法,定义IBinder  onBind(Intent intent)方法,在绑定Service的情况下,onBind(Intent intent)  方法返回的IBinder对象将会传给

              Activity类中的service参数,  这样访问者就可通过该IBinder对象与Service进行通信了(该IBinder对象为    继承Binder的子类(例 :MyBinder)所创建的对象)。

               然后就可以通过MyBinder 对象来访问Service的运行状态了,然后解除绑定  onUnbind()  ,最后销毁  onDestroy() 。


    service的生命周期:

          1. startService()    onCreate()    onStartCommand()(若多次启动则会一直调用) onStopService()(被访问者调用)   onDestroy() 

                  2.  bindService()    onCreate()    onBind()(与Service绑定)    onUnbind()   onDestroy()


           自己对service的一些见解,能力有限,写的不好,请多多指点。










1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1733次
    • 积分:157
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类