如何在 WearableListenerService 中使用 square otto 总线事件 post?
How to use square otto bus event post in WearableListenerService?
背景:我正在向我的移动应用程序添加 android 佩戴支持,但在 WearableListenerService 中使用 otto 总线事件时遇到问题。
我在我的手机上添加了一个扩展 WearableListenerService 的 TasksService。每当 wear app 请求任何新任务时,我都会尝试 post 来自 TasksService 的总线事件(例如:bus.post(new TasksEvent.GetTasks()),我在其中使用 HTTP 网络调用改造并获取新任务。一旦我从网络获取新任务并再次使用 bus.post 对响应进行 post 处理。在 TasksService 中,我订阅了响应并将其发送到 wear 应用程序。
问题:
问题是当我进行 HTTP 网络调用并获得响应时,WearableListenerService 已被销毁并且订阅事件未被调用。谁能提供有关如何在 android WearableListenerService 中使用 otto 总线事件的见解?
您需要启动一个单独的 Service
来完成 HTTP 调用和响应的(可能很长 运行)工作。正如您所指出的,当您只是扩展 WearableListenerService
时,系统会在 Wear API 交互完成后终止服务。
此外,在这种情况下,您可能希望不再使用 Otto。我没有专门使用 Otto,但我对其他事件总线的体验是它们不太适合这种情况。当您需要在代码中的不同位置之间进行通信时,它们可能是一个很好的快捷方式,但它们需要适合 Android 组件生命周期 - 而在本例中则不需要。您可能需要在新服务中连接 GoogleApiClient
并从那里将数据发送回 Wear。
背景:我正在向我的移动应用程序添加 android 佩戴支持,但在 WearableListenerService 中使用 otto 总线事件时遇到问题。
我在我的手机上添加了一个扩展 WearableListenerService 的 TasksService。每当 wear app 请求任何新任务时,我都会尝试 post 来自 TasksService 的总线事件(例如:bus.post(new TasksEvent.GetTasks()),我在其中使用 HTTP 网络调用改造并获取新任务。一旦我从网络获取新任务并再次使用 bus.post 对响应进行 post 处理。在 TasksService 中,我订阅了响应并将其发送到 wear 应用程序。
问题:
问题是当我进行 HTTP 网络调用并获得响应时,WearableListenerService 已被销毁并且订阅事件未被调用。谁能提供有关如何在 android WearableListenerService 中使用 otto 总线事件的见解?
您需要启动一个单独的 Service
来完成 HTTP 调用和响应的(可能很长 运行)工作。正如您所指出的,当您只是扩展 WearableListenerService
时,系统会在 Wear API 交互完成后终止服务。
此外,在这种情况下,您可能希望不再使用 Otto。我没有专门使用 Otto,但我对其他事件总线的体验是它们不太适合这种情况。当您需要在代码中的不同位置之间进行通信时,它们可能是一个很好的快捷方式,但它们需要适合 Android 组件生命周期 - 而在本例中则不需要。您可能需要在新服务中连接 GoogleApiClient
并从那里将数据发送回 Wear。