gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:01:32 25 4
gpt4 key购买 nike

我想将我的对象putExtra()放入 Intent 中,然后将其发送到常驻服务并让它进一步处理该对象。

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

本网站上的大多数示例都是关于 Activity 到 Activity 的通信 - 也就是说,当您将对象或 Parcelable 传递给另一个 Activity 的那一刻,就是您启动目标 Activity 的同一时刻,这意味着您所要做的就是将您的 getExtra() 放入 onCreate 方法中,您就完成了。

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

当然,我可以实现一个带有延迟计时器的可运行程序,它定期检查传递给它的 Intent ,但这太麻烦了。此外,我根本不相信 android API 没有办法检测 putExtra() 甚至。我的意思是这似乎不太可能。

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

最佳答案

听起来您希望您的ActivityService进行通信。这可以使用绑定(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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com