android中service得编程

来源:互联网 发布:dj网络红歌 编辑:程序博客网 时间:2024/06/06 09:23

  • android的两种启动方式(还有混合模式)

  1. 一种是使用context.startService()这种方式启动的service,这种方式相当于重新为service启动了一个主线程,即时启动它的另外一个主线程不运行,也不影响这个线程的运行,但是这样方式启动的service不持有这个service的句柄,所以通信只能借助系统工具,比如broadcast,这种方式必须显示的结束自己(Stopself或者context.stopservice)
  2. 一种是Context.bindService()这种方式绑定service,这种方式启动的service和启动它的主线程是同一个线程中,如果启动它的线程不运行了,那这个service也不回被回调了,我做了个实验,不过写文章的机器不是我的机器,没上传代码,这种方式必须实现ServiceConnection接口,在接口的onServiceConnected方法中可以通过IBinder.getService(),这样直接获得了service得引用,想操作本地对象一样.这样启动的service如果调用了service.startForeground()必须调用service.stopService()结束。
  3. 还有一种是混合模式先调用第一种,在调用第二种,这样两个的好处都有了,但是关闭的时候也要反序调用停止函数。

intentService的使用:这个就是一个包含handler和工作线程,这样可以减少一些代码的编写,看起来简洁。http://blog.csdn.net/hudashi/article/details/7986130

0 0
原创粉丝点击