我想将我的对象putExtra()
放入 Intent 中,然后将其发送到常驻服务并让它进一步处理该对象。
我已经实现了 Parcelable 等,并且我已经完成了 putExtra()
代码。现在我遇到了一个问题:我不知道如何使用 getExtra()
smart-ly。
本网站上的大多数示例都是关于 Activity 到 Activity 的通信 - 也就是说,当您将对象或 Parcelable 传递给另一个 Activity 的那一刻,就是您启动目标 Activity 的同一时刻,这意味着您所要做的就是将您的 getExtra()
放入 onCreate 方法中,您就完成了。
但正如我所提到的,我想要一个常驻服务,这意味着该服务可能会在我发送可打包对象之前很久就创建并启动。
当然,我可以实现一个带有延迟计时器的可运行程序,它定期检查传递给它的 Intent ,但这太麻烦了。此外,我根本不相信 android API 没有办法检测 putExtra() 甚至。我的意思是这似乎不太可能。
那么我应该怎么做才能在每次调用 putExtra()
方法时调用数据处理服务中的 getExtra()
呢?我的意思是java是一个OOPL,它是事件驱动的,对吧?一定有什么我可以利用的东西?
最佳答案
听起来您希望您的Activity
与Service
进行通信。这可以使用绑定(bind)服务来解决。 https://developer.android.com/guide/components/bound-services.html
要使其正常工作,您需要重写服务中的 onBind
,它会返回 IBinder
。如果您的 Activity 和服务都在同一进程中运行,那么这相当简单。 https://developer.android.com/guide/components/bound-services.html#Binder
然后,在您的 Activity 中,您可以通过调用 bindService
获取对 IBinder
的引用,然后您可以直接调用 Service
>.
关于java - Android - 如何正确触发 getExtra()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47214559/