java - 将对象从服务发送到应用程序 - 处理程序

标签 java android service android-service handler

我的服务与启动该服务的文件位于不同的 java 文件中。

为简单起见,我们将调用一个 Main.java 和一个 ServiceFile.java。

Main 在 onCreate() 中启动服务(ServiceFile.java),并且该服务在应用程序的生命周期内继续运行。该服务的功能是在单独的线程上执行网络操作,然后在接收数据后创建一个 Vehicle 对象。

我需要将此对象从 ServiceFile.java 获取到 Main.java

我读过Handlers在谷歌开发人员上,这似乎是我所需要的。然而,我能找到的处理程序实现的所有示例都是其他线程位于同一个 java 文件中的示例。如何在这样的文件之间发送消息?

我曾想过使用 putExtra 来提供对 Handler 的引用,但这行不通,因为 Handler 不可可解析或可序列化。

最佳答案

我认为更好的方法是,您可以从第二个 Activity 绑定(bind)到服务,然后使用 Binder 从服务获取对象。看看这个答案 here

基本上,该答案所做的是,您从 Service 获取一个 IBinder,从而获得 Service 本身的句柄(已经在运行)。现在您已经有了该服务的句柄,您可以直接从该服务获取 VO。

关于java - 将对象从服务发送到应用程序 - 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18647462/

相关文章:

android - 识别浏览器移动版本的最佳方法

android.location.Address 无法被 AIDL 识别?

Java 对象创建错误

android - 以编程方式播放 YouTubePlayer 不起作用

Java 并发 : Alternative to Multi Threading (working with non thread safe environment)

android - Calendar.MONTH 返回错误值

android - 如何从服务类更新 SimpleCursorAdapter ListView ?

sql - 基于定时器的事件触发器

java - 为什么我的二叉搜索树删除不起作用?

java - 无法找到命名空间的 NamespaceHandler [http ://www. springframework.org/schema/context]