Android - 如何正确触发getExtra()?

时间:2017-11-10 01:59:35

标签: java android android-intent service

我想将putExtra()我的对象转换为意图,然后将其发送到常驻服务并让它进一步处理该对象。

我已经实现了parcelable等,我已经完成了putExtra()代码。现在我遇到了一个问题:我不知道如何使用getExtra() smart-ly

此网站上的大多数示例都与活动通信活动有关 - 也就是说,您将对象或parcelable传递给另一个活动的那一刻就是您启动目标活动的那一刻,这意味着您所要做的就是将你的getExtra()放在onCreate方法中,你就可以了。

但正如我所提到的,我想要一个常驻服务,这意味着在我发送一个可分配的对象之前很久就会创建和启动这项服务。

当然我可以使用延迟计时器实现一个runnable,它会定期检查传递给它的意图,但这太麻烦了。此外,我只是拒绝相信android API没有办法检测putExtra()偶数。我的意思似乎不太可能。

那么每次调用getExtra()方法时,我应该怎样做才能在我的数据处理服务中调用putExtra()?我的意思是java是一个OOPL,它是事件驱动的,对吧?必须有一些我可以利用的东西吗?

2 个答案:

答案 0 :(得分:1)

听起来您希望function displayCoordinates(e){ table.innerHTML = "MouseX: " + e.offsetX + "<br>" + "MouseY: " + e.offsetY; } function resetTable(){ } Activity进行通信。这可以使用绑定服务来解决。 https://developer.android.com/guide/components/bound-services.html

要使其生效,您需要覆盖服务中的Service,该服务会返回onBind。如果您的活动和服务都在同一个进程中运行,那么这非常简单。 https://developer.android.com/guide/components/bound-services.html#Binder

然后,在您的活动中,您会通过致电IBinder获得对IBinder的引用,然后您可以直接拨打bindService

答案 1 :(得分:0)

RxJava怎么样?您可以将Observable提供给您的服务,并使用数据检查所有更改。