Service的启动方式

Service的启动方式:

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

一、startservice方式启动

         Intent intent = new Intent(this, FirstService.class);
// 开启服务
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可以停止服务

上一篇:CPU利用率异常的分析思路和方法交流探讨


下一篇:java常用注释