android - 将 Activity 绑定(bind)到 android 中正在运行的服务

标签 android service notifications

我有一个启动时启动的服务 S。 它有一个 contentobserver C,它启动一个 intentservice X 来做一些处理。 默认 Activity A 由用户启动。

我想知道是否可以在不停止服务的情况下将 A 绑定(bind)到正在运行的服务 S,以便我可以将结果接收器 R 传递给 S,而 S 又必须传递给 X。

我想实现这一点,以便我可以再次启动 X,这次没有 C,来自绑定(bind)服务 S,R 作为可打包的额外服务。 通过 R,无论何时运行,进度对话框都会在 A 中更新。

在使用 resultreceivers 尝试运气之前,我使用的是通知,它来自支持库。 但问题是我正在为循环的每次迭代再次构建和显示它们。 警报声重复播放了大约 300 次,令人不快。

尝试了广播的运气,但我有一些不好的经历。所以把它们扔掉了。

有没有其他办法解决这个问题? 如果有一种方法可以通过重新构建更新通知来解决我的问题。

我使用的是 4.1.1 版本,API 16,其中 setlatesteventinfo 似乎已被弃用。

我仍然愿意回到更新正在运行的通知的想法。 或者不同的解决方法。 任何帮助将不胜感激。

编辑:

使用通知是实现此应用程序的一种方式,其中不需要 resultreceiver 和 ibinder 接口(interface)。

我在 API 级别 16 中找不到 setlatesteventinfo。我正在尝试使用 v4 支持库。在我的实现中,我为循环的每次迭代构建了一个新通知。但我还没有想出一种方法让声音只在第一次时保持警觉,而在其他时候则不。有人成功地正确更新了通知吗?

最佳答案

I want to know if it's possible to bind A to the running service S without stopping it

这当然是可能的。正如 Hoan 指出的那样,您需要从您的 Activity 中调用 bindService() 。 This article有一些关于如何做到这一点的示例代码。

至于你的问题的其余部分,它似乎可以分解成几个新问题。一次理解并回答所有问题真的很难。

关于android - 将 Activity 绑定(bind)到 android 中正在运行的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984608/

相关文章:

sql - 自动启动本地服务器

android - 使用 webRTC 推送通知

Java Android - 在最近滑动后关闭应用程序(通知)

javascript - 如何使用 url 连接我们的 Android 应用程序并将数据传递到该 url

c# - 服务导致SCM错误 "reported an invalid current state 0"

java - MIUI 中的 Internet 连接状态被阻止

swift - 如何在 Swift 中多次显示通知?

android - 具有固定页眉、可滚动正文和固定页脚的 DialogFragment

Android Studio 3.1 未显示构建错误详细信息

android - float 操作按钮和 RecyclerView