0

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

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

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

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

我在 google devs 上阅读了有关Handlers的信息,这似乎是我所需要的。但是,我能找到的处理程序实现的所有示例都是其他线程位于同一 java 文件中的示例。如何像这样跨文件发送消息?

我有使用 putExtra 来引用 Handler 的想法,但这行不通,因为 Handler 不是parcelable or serializable.

4

2 回答 2

2

我认为更好的方法是如果您可以从您的第二个活动绑定到服务,然后使用Binder从服务中获取对象。在这里看看这个答案

基本上,在该答案中所做的是,您IBinder从 the 中获得Service一个句柄,因此获得了对Service自身的句柄(它已经在运行)。现在您已经掌握了服务的句柄,您可以直接从服务中获取 VO。

于 2013-09-05T23:44:06.613 回答
0

在 Android 开发者页面上有实现所需任务类型的完整指南:

链接:绑定服务

于 2013-09-06T08:50:12.697 回答