安卓中服务的开启方式
一:采用start的方式开启服务
调用函数:startService(Intent)->onCreate()->onStart()/onStartCommand()->onDestroy()
特点:服务被开启后不会重复开启,只会调用onStart(),服务只会被停止一次。
二:采用bind的方式开发服务
调用函数:bindService(Intent…)->onCreate()->onBind()->onUnBind()->onDestroy();
特点:绑定不会调用onStart()[过时了]和onStartCommand()方法。
两种服务的区别:
start方式开发服务,一旦服务开启跟调用者就没有任何关系了,比如我们的服务是在Activity中调用开启的,当Activity关闭的时候,服务不会关闭。
bind方式开启服务,调用者没了,服务也会关闭,可以理解为同生共死。
对于start开启服务的方式比较简单,重点讲解bind的方式!
例子:
1.布局里面设置三个按钮
2.为按钮设置监听事件,有好几种方式。
3.处理事件。当点击绑定的时候:
/*绑定的创建方式
*/
Intent intent = new Intent(this, MyService.class);
bindService(intent, conn, BIND_AUTO_CREATE);
conn是自己实现的功能类,继承自ServiceConnection。
完整代码如下:
public class MainActivity extends ActionBarActivity {
private MyConn conn;
private Call c;
@Override
protected void