【笔记】Android服务Service

前言

Android服务Service学习笔记,服务会在Android后台运行

创建服务

创建一个服务类

  • 创建一个类,继承Service类,并实现onBind()方法
app/src/main/java/.../MyService.java
1
2
3
4
5
6
7
8
public class MyService extends Service {

@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}

在清单文件中注册

app/src/main/AndroidManifest.xml
1
2
3
4
5
6
7
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name"

...

<service android:name=".MyService" />

</application>

普通

启动服务

app/src/main/java/.../MainActivity.java
1
startService(new Intent(this, MyService.class));

停止服务

app/src/main/java/.../MainActivity.java
1
stopService(new Intent(this, MyService.class));

绑定服务

设置桥梁

  • 设置MainActivity与MyService的桥梁
app/src/main/java/.../MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
ServiceConnection connection = new ServiceConnection() {

@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {

}

@Override
public void onServiceDisconnected(ComponentName componentName) {

}
};

启动服务

app/src/main/java/.../MainActivity.java
1
bindService(new Intent(this, MyService.class), connection, Context.BIND_AUTO_CREATE);

停止服务

app/src/main/java/.../MainActivity.java
1
unbindService(connection);unbindService(connection);

当Activity销毁时停止服务

app/src/main/java/.../MainActivity.java
1
2
3
4
5
@Override
protected void onDestroy() {
super.onDestroy();
unbindService(connection);
}

服务的生命周期

  • 启动普通服务 onCreate()->onStartCommand()->onStart()
  • 停止普通服务 ->onDestroy()
  • 启动绑定服务 onCreate()->onBind()
  • 停止绑定服务 ->onUnbind()->onDestroy()

onCreate():服务创建
onStart():服务启动(已过期)
onSatartCommand():服务启动
onBind():绑定服务启动
onUnbind():绑定服务停止
onDestroy():服务销毁

完成

参考文献

哔哩哔哩——Android架构解析