最佳实践 Android 设计:隐藏 webview、片段、服务?

Best practice Android design: hidden webview, fragment, service?

我的应用程序需要进行多个 http 连接才能提供在应用程序中进一步使用的结果。我需要在过程中使用 webview 打开 link 和 get/parse 结果 html。我应该在哪里 post 这些连接和 webview 的代码?请注意,中间步骤与用户无关,只有在某处失败时才会发生。

目前,我有 2 个活动:第一个进行第一个连接(在 asynctask 中),它形成需要在 webview 中打开的 URL。我打开第二个 activity 通过 url,我在 webview 中打开 url,获取 html,并为最终结果做另一个连接。

我想到了以下选项:合并这 2 个活动并使用隐藏的 webview?也许将所有这些都放在一个 no-UI 片段中?或者将其编码为服务?

我不希望该应用 crash/freeze 如果网速非常慢或连接有问题。

如果您只需要从服务器获取数据(如 REST api),那么您应该使用 OKHTTP 这样的库发出 HTTP 请求。网络请求将作为要求异步,因此不会影响 UI。您将不得不等待对您的请求的响应。获得响应后,解析它们。在您收到所有回复之前,您的应用程序中需要逻辑来阻止访问功能。

最后,我移动了一些东西,最后仍然有 2 个活动,但第 2 个活动只包含一个 webview。所以从 1st activity,我 startActivityForResult 两次(因为我需要使用 webview 两次)在 1st activity 结束。也就是说,流程如下:

Act1(一个 http 作业的异步任务 returning a link)-> Act2(在 webview 和 return 数据中打开 link)-> Act1(使用该数据获得第二个 link) -> Act2(再次启动它以获得最终结果并将其传回) -> Act1.

它当然不优雅,但它似乎是最简单的解决方案。猜想一个片段会更合适,但它们对我现在的技能来说相当复杂。