android - 从服务传递信息到前台 Activity

标签 android design-patterns service android-activity

我在 android 中有一个服务,它不断地提取传感器信息并通过网络接口(interface)发送它们。

另一方面,我有几个 Activity 将以不同方式使用这些传感器值。由于服务以事件驱动的方式获取值,我如何才能将这些值仅传递给前台的 Activity ?

提前致谢

最佳答案

我假设这是“本地”服务的最常见情况,即与 Activity 在同一进程中运行。

有两种解决方案,一种是服务发送 Intent 到在 onStart()onStop()BroadcastReceiver 的 Activity .

另一个使用监听器机制。您可以获得对服务实例的引用,如 here 所述.在服务中写一个setListener(ServiceListener l)方法 和一个 ServiceListener 接口(interface),您将能够在您的 Activity 中实现一个监听器并将其设置在服务上。

Intent 方法可能更简单且风险较小,但您必须坚持使用 Intent extra 进行数据交换。

监听器方式更灵活,但我读到必须确保取消注册监听器,否则您可能会成为内存。泄漏整个 Activity 。

关于android - 从服务传递信息到前台 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5111419/

相关文章:

android - Android 服务的良好做法

c# - 缓存数据库查询的最佳方法是什么

java - 以我们需要多次创建相同上下文的方式设计 Spring 应用程序是最佳实践吗?

Android 小部件未调用服务 onStart

Android:从 onReceive 方法设置新的闹钟

android - [完成]notifyDataSetChanged() 不自动更新ListActivity

android - ViewBinding 未在自定义 View 中显示 View

java - 如何创建 API 来与我的应用程序交互

Java 通用接口(interface)返回类型

Android Firestore : Failed to gain exclusive lock to the Firestore client's offline persistence