Android 如何在WearableListenerService中使用square otto巴士事件帖子?

Android 如何在WearableListenerService中使用square otto巴士事件帖子?,android,wear-os,otto,Android,Wear Os,Otto,背景:我正在将android wear支持添加到我的移动应用程序中,在WearableListenerService中使用otto bus事件时遇到问题 我在手机上添加了一个TasksService,它扩展了WearableListenerService。每当wear app请求任何新任务时,我都会尝试从TaskService发布一个总线事件(例如:bus.post(new TasksEvent.GetTasks())在这里,我使用改装进行HTTP网络呼叫并获取新任务。一旦我从网络获取新任务并再

背景:我正在将android wear支持添加到我的移动应用程序中,在WearableListenerService中使用otto bus事件时遇到问题

我在手机上添加了一个TasksService,它扩展了WearableListenerService。每当wear app请求任何新任务时,我都会尝试从TaskService发布一个总线事件(例如:bus.post(new TasksEvent.GetTasks())在这里,我使用改装进行HTTP网络呼叫并获取新任务。一旦我从网络获取新任务并再次使用bus.post发布响应。在TasksService中,我订阅了响应并将其发送到wear应用程序

问题:


问题是,当我进行HTTP网络调用并获得响应时,WearableListenerService正在被破坏,subscribe事件没有被调用。有人能告诉我如何在android WearableListenerService中使用otto bus事件吗?

你需要启动一个单独的
服务来完成(可能会长期运行)HTTP调用和响应的工作。正如您所指出的,当您刚刚扩展
WearableListenerService
时,系统会在Wear API交互完成后终止该服务


此外,在这种情况下,您可能想放弃使用Otto。我没有专门使用Otto,但我对其他事件总线的经验是,它们不适合这种情况。当您需要在代码中的不同位置之间进行通信时,它们可能是一种很好的捷径,但它们需要适合Android组件t lifecycle-本例中没有。您可能需要在新服务中连接
GoogleAppClient
,然后将数据从那里发送回Wear。

感谢您的解释。这对我很有帮助。如果我的回答解决了您的问题,通常会接受它。对不起……我是堆栈溢出新手。我现在接受了您的回答。