第一:什么是Service?
Service是四大组件之一,Service与Activity相似,我们知道什么是Activitiy就好容易理解什么是Service,Service与Activity最大区别就在于Activity是负责与用户交互的,有界面,用户可视,而Service是没有用户界面的,位于后台,为整个程序提供服务的。Service与Activity都是Context派生出来的,因此也可以调用Context的方法。第二:创建与配置Service
(1)创建一个继承自Service的类,实现父类的几个方法
(2)在AndroidMenifest中使用service标签声明第三:
了解Service的生命周期,使用startService()与bindService()启动的Service生命周期不一样,简单的画了个图
从图中可以看出,startService中在onCreate之后进入到onStartCommand就开始运行,相关逻辑就在onCreate和onStartCommand方法中操作,bindService中在onCreate之后,还会走onBind方法,进入onBind()方法,Service开始运行,相关逻辑代码,在onBind方法中编写,当用户点击退出服务时,即调用了unBind方法,之后
会走onDestory方法,
自己编写了一个简单的启动Service的程序,什么操作也没有,仅仅在生命周期中打印了几条日志
启动服务界面代码:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button bind, unBind;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bind = (Button) findViewById(R.id.bind);
unBind = (Button) findViewById(R.id.unbind);
bind.setOnClickListener(this);
unBind.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bind:
intent=new Intent(MainActivity.this,MyService.class);
startService(intent);
break;
case R.id.unbind:
stopService(intent);
break;
}
}
}
Service类代码:
public class MyService extends Service{
@Nullable
@Override
public IBinder onBind(Intent intent) {
Log.d("My