1.服务(Service) 是Android中实现程序后台运行的.非常适合用于去执行不需要和用户交互并且要长期运行的任务,
服务的运行不依赖于任何用户界面,
值得注意的是,服务不会主动去开启一个线程,如果没有手动开启线程的话,是默认执行在主线程的.
2.如何创建一个服务首先自定义一个类去继承Service 然后重写onBind()方法,在清单文件中声明
具体的代码如下
public class MyService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
/**
* 当服务第一次创建的时候调用的方法
*/
@Override
public void onCreate() {
super.onCreate();
Log.e("on", "oncreate方法");
}
/**
* 每次服务启动的时候都会调用的方法
* @param intent
* @param flags
* @param startId
* @return
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e("on", "onStartCommand方法");
return super.onStartCommand(intent, flags, startId);
}
/**
* 当服务被销毁的时候调用的方法
*/
@Override
public void onDestroy() {
super.onDestroy();
Log.e("on", "onDestroy方法");
}
在清单代码中声明服务,代码如下:
<application
.....
.....
.....
...
<service android:name=".MyService"/>
</application>
这里的name就是自己的包名加上类名.
最后就是在MainActivity中使用Intent启动和停止服务:
public void onclick(View view) {
switch (view.getId()) {
case R.id.bt_start:
Intent startintent = new Intent(this,MyService.class);
//启动服务
startService(startintent);
break;
case R.id.bt_stop:
Intent stopintent = new Intent(this,MyService.class);
//停止服务
stopService(stopintent);
break;
当启动服务之后,服务会一直在后台运行,直到停止服务,
但是值得注意的是,这里的服务启动以后和MainActivity一毛钱关系都么有了!!