关于Android中的Service的使用,首先要明白Service的生命周期,开发Service的步骤与Activity的步骤很像,开发Service组件需要先开发一个Service的子类,然后在AndroidManifest.xml中配置该Service。

首先,先来说一下Service的生命周期:

正如Activity一样,Service也有自己的一套生命周期函数,在Android中,运行Service有两种方法:

(1) 通过Context的startService()方法:通过该方法启动Service,那么即使访问者退出了,Service仍然在运行着,因为访问者与Service之间没有关联;

(2) 通过Context的bindService()方法:通过该方法启动Service,访问者与Service绑定在一起,访问者一旦退出了,Service也就终止。

  service整体的生命时间是从onCreate()被调用开始,到onDestroy()方法返回为止。

  和activity一样,service在onCreate()中进行它的初始化工作,在onDestroy()中释放残留的资源。

  那么如何来使用第二种运行方式来运行一个Service呢?

  每一个被创建好的Service都潜在的允许绑定,所以一个被开启的Service仍然可能被绑定的,

  调用被绑定的service是当其他组件(一个客户)调用bindService()来创建的,客户可以通过一个IBinder()接口和service进行通信。

  客户可以通过unbindService()方法来关闭这种连接,一个service可以同时和多个客户绑定,当多个客户都解除绑定之后,系统会销毁service。

  

  通过下边的这张图洗完可以更好的帮助理解一下Service的周期。

  Android 之Service的使用及生命周期

  下边的类定义了一个Service组件,虽然这个Service什么事情也没干,但实际是那个它是Service组件的框架,如果希望Service做某些事情,那么只要在onCreate()或onStartCommand()方法中定义响应的恶业务代码即可。

public class MyFirstService extends Service {    private String  Tag = "MyFirstService";        @Override    public IBinder onBind(Intent arg0) {        // TODO Auto-generated method stub        return null;    }    @Override    public void onCreate() {        // TODO Auto-generated method stub         Log.v(Tag, "Service is Created");          super.onCreate();    }    @Override    public void onDestroy() {        // TODO Auto-generated method stub          Log.v(Tag, "Service is Destroy");          super.onDestroy();    }    @Override    public int onStartCommand(Intent intent, int flags, int startId) {        // TODO Auto-generated method stub         Log.v(Tag, "Service is Started");          return super.onStartCommand(intent, flags, startId);    }    @Override    public boolean onUnbind(Intent intent) {        // TODO Auto-generated method stub        Log.v(Tag, "start onUnbind~~~");          return super.onUnbind(intent);    }       }

定义了上边的Service之后,需要在AndroidManifest.xml中被指该Service:

  <service android:name="com.example.service.MyFirstService" />

更多相关文章

  1. android导入xxx.aar依赖方法
  2. Android ListView滑动后背景变黑问题解决方法
  3. Android Canvas绘图描述Android Canvas 方法总结
  4. Android设计模式系列--工厂方法模式
  5. 【转】Android 虚拟机安装APK文件方法
  6. Android USB Gadget复合设备驱动(打印机)测试方法

随机推荐

  1. android support v4、v7、v13的区别及作
  2. 【安卓开发】Facebook工程师是如何改进他
  3. 接入新浪、腾讯微博和人人网的Android客
  4. Google Android内核编译教程
  5. Android(安卓)Vitamio 直播视频播放功能
  6. Eclipse同时附加javadoc和android文档
  7. [置顶] Android的Activity屏幕切换动画(
  8. 【Android】android中Invalidate和postIn
  9. Android盈利模式,哪种更靠谱?
  10. 爱奇艺Android移动客户端app瘦身经验