Android Service

一个Service可以以以下两种形式存在:
开启服务: 不可以调用服务里面的方法.
          如果调用者activity退出了, 服务还会长期的在后台运行
绑定服务: 间接调用服务里面的方法.
          如果调用者activity被销毁了, 服务也会跟着销毁
          (不求同时生,但求同时挂)

创建 Service 实现Service

需要重载的重要方法

 onStartCommand() 

Android系统在有其它应用程序组件使用startService()请求启动Service时调用。一旦这个方法被调用,Service处于“Started”状态并可以一直运行下去。如果你实现了这个方法,你需要在Service任务完成时调用stopSelf()或是stopService()来终止服务。如果你只支持“绑定”模式的服务,你可以不实现这个方法。

·        onBind()  

Android系统中有其他应用程序组件使用bindService()来绑定你的服务时调用。在你实现这个方法时,你需要提供一个IBinder接口以支持客户端和服务之间通信。你必须实现这个方法,如果你不打算支持“绑定”,返回Null即可。

·        onCreate()  

Android系统中创建Service实例时调用,一般在这里初始化一些只需单次设置的过程(在onStartCommand和onBind()之前调用),如果你的Service已在运行状态,这个方法不会被调用。

·      onDestroy()

 Android系统中Service不再需要,需要销毁前调用。在你的实现中你需要释放一些诸如线程,注册过的listener,receiver等,这是Service被调用的最后一个方法。

如果一个Service是由startService()启动的(这时 onStartCommand()将被调用),这个Service将一直运行直到调用stopSelf()或其它应用部件调用stopService()为止。

如果一个部件调用bindService()创建一个Service(此时onStartCommand()不会调用),这个Service运行的时间和绑定它的组件一样长。一旦其他组件解除绑定,系统将销毁这个Service。

在Manifest中申明Service
    和Activity一样,你必须在Manifest文件中申明应用中使用到的Service。为了声明一个Service,你需要定义<application>的子元素<service>,比如:

1
2
3
4
5
6
<service android:name=".RemoteService" >
            <intent-filter>
                <action android:name="com.itheima.remoteservice" >
                </action>
            </intent-filter>
        </service>

 

 

 

 

 

 

 



来自为知笔记(Wiz)


posted on 2014-04-28 14:03  转折点人生  阅读(129)  评论(0)    收藏  举报