我的服务与启动该服务的文件位于不同的 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/