android中service得编程

  • 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值