目录
1.Service---服务,是四大组件之一,和Activity非常相似,一般运行在后台,没有用户界面,可执行的程序。
2.Activity和Service的区别
(1)不同点:
Activity:可以和用户交互,页面可见。
Service:后台运行,没有界面。
(2)相同点:
在清单文件注册,都有自己的生命周期。
Service特点
service在后排运行,不用与用户进行交互。即使应用退出,服务也不会停。当应用进程被杀死是,服务便会停止。
service运行在主线程中,当需要执行耗时操作的时候,需要在服务中创建子线程完成。
service的用途:播放音乐;后台下载大文件等。
Service生命周期
onCreate():创建服务的时候回调;
onStartCommand():开始服务的时候回调;
onDestroy():销毁服务的时候回调;
onBind():绑定服务的时候回调;
onUnbind():解绑服务的时候回调;
@Override
public IBinder onBind(Intent intent) {
Log.i("---myservice2", "onBind: ");
return new MyBind();
}
@Override
public void onCreate() {
super.onCreate();
Log.i("---myservice2", "onCreate: ");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("---myservice2", "onStartCommand: ");
return super.onStartCommand(intent, flags, startId);
}
@Override
public boolean onUnbind(Intent intent) {
Log.i("---myservice2", "onUnbind: ");
return super.onUnbind(intent);
}
@Override
public void onDestroy() {
Log.i("---myservice2", "onDestroy: ");
super.onDestroy();
}
public class MyBind extends Binder{
}
public void StartService(View view) {
Intent intent = new Intent(this,MyService.class);
startService(intent);//开启服务
}
public void StopService(View view) {
Intent intent = new Intent(this,MyService.class);
stopService(intent);//停止服务
}
public void bindservice(View view) {
Intent intent = new Intent(this,MyService2.class);
bindService(intent,serviceConnection,BIND_AUTO_CREATE);//绑定服务
}
public void unbindservice(View view) {
unbindService(serviceConnection);//解除绑定服务
}
MyService2.MyBind myBind;
//服务连接
ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
myBind=(MyService2.MyBind)iBinder;//有联系的
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
//断开联系
}
};