前言
Android服务Service学习笔记,服务会在Android后台运行
创建服务
创建一个服务类
- 创建一个类,继承Service类,并实现
onBind()
方法
app/src/main/java/.../MyService.java1 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.xml1 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.java1
| startService(new Intent(this, MyService.class));
|
停止服务
app/src/main/java/.../MainActivity.java1
| stopService(new Intent(this, MyService.class));
|
绑定服务
设置桥梁
- 设置MainActivity与MyService的桥梁
app/src/main/java/.../MainActivity.java1 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.java1
| bindService(new Intent(this, MyService.class), connection, Context.BIND_AUTO_CREATE);
|
停止服务
app/src/main/java/.../MainActivity.java1
| unbindService(connection);unbindService(connection);
|
当Activity销毁时停止服务
app/src/main/java/.../MainActivity.java1 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架构解析