一个简单的秒表应用程序,带有使用前台和绑定服务的 jetpack compose
检查 YouTube 的完整视频教程
该应用程序基本上由 3 个不同的文本单元组成,分别代表小时、分钟和秒。用户界面上还有两个按钮。第一个按钮将根据服务状态进行更改,第二个按钮将允许我们取消前台服务,这将导致秒表重置。
您可以通过 UI 按钮或通知面板控制秒表。由于我们正在使用服务,因此即使我们关闭应用程序,我们也可以通过通知面板跟踪秒表状态。
Hilt 是 Android 的依赖注入库,可减少在项目中进行手动依赖注入的样板。进行手动依赖项注入需要您手动构造每个类及其依赖项,并使用容器来重用和管理依赖项。
Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期,提供了在应用程序中使用 DI 的标准方法。 Hilt 构建在流行的 DI 库 Dagger 之上,受益于 Dagger 提供的编译时正确性、运行时性能、可扩展性和 Android Studio 支持。
绑定服务是 Service 类的实现,它允许其他应用程序绑定到它并与其交互。要为服务提供绑定,您必须实现 onBind() 回调方法。此方法返回一个 IBinder 对象,该对象定义客户端可用于与服务交互的编程接口。
前台服务执行用户注意到的操作。
前台服务显示状态栏通知,以便用户主动了解您的应用程序正在前台执行任务并消耗系统资源。
运行 Android 12(API 级别 31)或更高版本的设备可为短时间运行的前台服务提供简化的体验。在这些设备上,系统会等待 10 秒,然后再显示与前台服务关联的通知。但也有一些例外;多种类型的服务总是立即显示通知。