【发布时间】:2023-09-18 13:35:01
【问题描述】:
我有一个通过蓝牙与我的应用程序连接的传感器。我创建了一个前台服务,即使在用户关闭应用程序后,它也能保持应用程序处于活动状态并与传感器连接。要停止前台服务,用户重新启动应用程序并停止前台服务。
以上所有内容都已完美完成,并且适用于 NOW。
我的问题是——
有一个播放和暂停按钮来启动和停止服务。启动后,图标会更改,但在完全关闭应用程序(不停止前台服务)后重新启动应用程序,应用程序不会更改。当然它不会改变,因为我不知道如何检查服务是否仍在前台运行。
是的,我已经阅读了所有以前的答案,其中大多数已被弃用或不再起作用。
由于 Commonsware 要求提供我迄今为止阅读的所有帖子的链接,所以你去 -
- Determining the current foreground application from a background task or service
- How to check is app in foreground from service?
- check android application is in foreground or not?
- Check if Foreground service is running in Android OREO
- How to determine if an Android Service is running in the foreground?
【问题讨论】:
-
“我已经阅读了所有以前的答案”——请链接。 “它们中的大多数都已弃用”-请提供链接。 “或不再工作” - 链接,请。假设您的服务在一个单独的进程中(
android:process属性),您应该能够尝试在没有BIND_AUTO_CREATE的情况下绑定到它并查看绑定是否成功。或者,使用广播(小心)。如果您已经尝试过,也许minimal reproducible example 会帮助我们找到您实施中的问题。 -
好的——我会把它们添加到我原来的帖子中
-
@CommonsWare 感谢您的提示。
-
为什么要检查服务是否正在运行??您可以轻松地保存共享首选项存储您的服务“开”或“关”的状态,并在 on resume 事件中检查它以更改按钮的图像
-
@MohammedAlloboany 如果用户完全关闭应用程序怎么办?该应用将继续在后台运行。
标签: android service foreground