我需要一个Web服务来在所有活动中持续存在。
因此,假设有ActivityOne
,ActivityTwo
和ActivityThree
。
ActivityOne
开始,然后单击按钮并启动ActivityTwo
。
现在ActivityOne
在后台。
ActivityTwo
调用了Web服务,但是在Web服务返回之前,ActivityTwo
被用户(称为activity.finish()
)关闭并且ActivityThree
已启动。
我希望ActivityTwo
收到来自ActivityThree
调用的Web服务的Web服务响应。
基本上,无论活动如何,我都需要Web服务的响应。
我正在考虑在Application
类内调用Web服务。那是个好主意吗?
答案 0 :(得分:1)
您可以为Web服务调用创建单例类,并将Web服务响应存储在该类中。下次在Activity三中调用网络服务时,可以检查响应是否已经存在,然后返回响应,或者可以拨打电话。它将删除您在广播或事件总线情况下丢失的数据(例如,当您使用广播接收器或事件总线广播响应时,并且如果接收器未注册,则您将不会收到响应)。
答案 1 :(得分:1)
@kartikmalik Singletons是“邪恶的”,应该在2018年今天尽量避免出现这种情况。
一种干净,更好的解决方案是使用服务(WebService所在的位置),并通过使用本地IPC技术传递侦听器/回调函数,从所有活动/片段对其进行“ bind()”。