在Application类中调用Web服务可以吗?

时间:2018-12-10 06:38:14

标签: android

我需要一个Web服务来在所有活动中持续存在。

因此,假设有ActivityOneActivityTwoActivityThree

ActivityOne开始,然后单击按钮并启动ActivityTwo。 现在ActivityOne在后​​台。

ActivityTwo调用了Web服务,但是在Web服务返回之前,ActivityTwo被用户(称为activity.finish())关闭并且ActivityThree已启动。

我希望ActivityTwo收到来自ActivityThree调用的Web服务的Web服务响应。

基本上,无论活动如何,我都需要Web服务的响应。

我正在考虑在Application类内调用Web服务。那是个好主意吗?

2 个答案:

答案 0 :(得分:1)

您可以为Web服务调用创建单例类,并将Web服务响应存储在该类中。下次在Activity三中调用网络服务时,可以检查响应是否已经存在,然后返回响应,或者可以拨打电话。它将删除您在广播或事件总线情况下丢失的数据(例如,当您使用广播接收器或事件总线广播响应时,并且如果接收器未注册,则您将不会收到响应)。

答案 1 :(得分:1)

@kartikmalik Singletons是“邪恶的”,应该在2018年今天尽量避免出现这种情况。

一种干净,更好的解决方案是使用服务(WebService所在的位置),并通过使用本地IPC技术传递侦听器/回调函数,从所有活动/片段对其进行“ bind()”。