Android Service 教程

2025年3月17日 | 阅读 3 分钟
android service

Android service 是一个组件,它用于在后台执行操作,例如播放音乐、处理网络事务、与内容提供商交互等。它没有任何用户界面 (UI)。

即使应用程序被销毁,服务也会无限期地在后台运行。

此外,服务还可以通过组件进行绑定,以执行交互和进程间通信 (IPC)。

android.app.Service 是 ContextWrapper 类的子类。

注意:Android Service 不是线程或独立进程。

Android Service 的生命周期

服务可以有两种形式。服务的生命周期可以遵循两条不同的路径:启动或绑定。

  1. 启动
  2. 绑定

1) 启动服务

当组件(如 Activity)调用 startService() 方法时,服务就会启动,现在它会在后台无限期运行。它通过 stopService() 方法停止。服务可以通过调用 stopSelf() 方法自行停止。

2) 绑定服务

当另一个组件(例如客户端)调用 bindService() 方法时,服务就会被绑定。客户端可以通过调用 unbindService() 方法来解绑服务。

在所有客户端解绑服务之前,服务不能被停止。

service lifecycle

通过后台音乐示例理解启动和服务

假设我想在后台播放音乐,我会调用 startService() 方法。但如果我想获取正在播放的当前歌曲的信息,我会绑定该服务,该服务提供当前歌曲的信息。


Android Service 示例

让我们来看一个在 Android 中在后台播放音频的服务示例。即使您切换到另一个 Activity,音频也不会停止。要停止音频,您需要停止服务。

android service example output 1

activity_main.xml

从调色板拖动 3 个按钮,现在 activity_main.xml 将如下所示

文件:activity_main.xml

activity_next.xml

这是下一个 Activity 的布局文件。

文件:activity_next.xml

它只有一个 TextView,显示消息“Next Page”。


Service 类

现在通过继承 Service 类并重写其回调方法来创建服务实现类。

文件:MyService.java

Activity 类

现在创建 MainActivity 类来执行事件处理。在这里,我们编写启动和停止服务的代码。此外,在 buttonNext 上调用第二个 Activity。

文件:MainActivity.java

NextPage 类

现在,创建另一个 Activity。

文件:NextPage.java

在 AndroidManifest.xml 文件中声明 Service

最后,在 manifest 文件中声明服务。

文件:AndroidManifest.xml

让我们看看完整的 AndroidManifest.xml 文件

输出

android service example output 2 android service example output 3
android service example output 4 android service example output 5