Service的启动方式

Service的启动方式:

两种启动模式,一种是非绑定启动模式,另一种是绑定启动模式。

一、startservice方式启动

1         Intent intent = new Intent(this, FirstService.class);
2         // 开启服务
3         startService(intent);

二、绑定启动模式

bindService

        Intent intent = new Intent(this,FirstService.class);
        
        //连接到服务FirstService 
        
         conn = new MyConn();
         bindService(intent,conn, BIND_AUTO_CREATE);

区别:

1.非绑定模式启动的话,启动之后就会在内存中长期运行,直到手动停止它

2.绑定模式启动,是跟可视化界面绑定的,界面看得见的话,服务就存在;按home键或者back键回到桌面的话服务就挂掉了。

绑定模式多次绑定跟一次绑定有什么区别:

多次绑定,不会报错,什么生命周期方法都不会执行,

解绑只能解绑一次,多次解绑报错

 

ps:混合方式启动服务,可以保证服务长期运行,并能调用服务里的方法,做法如下:

1.先用startservice保证服务在系统里长期运行;

2.再用onbind方法,获得中间人对象(Ibinder),即可调用服务里的方法

3.用unbind可以解绑

4.用stopservice可以停止服务

posted @ 2016-08-26 15:12  达哥的博客  阅读(1049)  评论(0编辑  收藏  举报