在Android应用中,处理无网络连接的最佳方法是什么?

6

我已经从事Android开发工作超过4年,所有我参与的项目中,人们总是问我处理没有网络连接情况的最佳方法是什么。 检查可以用多种方式进行,但我仍在努力确定哪种方式会有最好的用户体验。

一个想法是设置观察器以检查互联网连接,每次失去连接时,在当前屏幕上显示一个活动以通知用户他失去了连接。当互联网恢复时,只需在该活动上调用完成即可。但这会阻止与应用程序的任何交互。

另一个想法是个性化应用程序的每个屏幕以显示定制的无连接布局。但如果您有超过20个屏幕,则可能需要付出很高的代价。

在Android应用程序中处理无网络连接,您认为哪种方式最好?


5
我建议关闭这个问题,因为它可能更适合在UX Stack Exchange上,而不是在这里讨论(至少根据当前的答案集来看)。 - Jeeter
1
这真的取决于您的应用程序以及应用程序的目标,这就是为什么我同意@Jeeter的观点,认为这是不相关的,并且应该在UX堆栈交换中(如果有的话)。但是,由于它过于广泛,因此可能完全不适合。 - a_local_nobody
@Jeeter 哦,是的,你说得对。对此我很抱歉。我应该将它移动到那里,但仍然有一些好的答案。现在我该怎么办? - sunlover3
4个回答

5
根据 material.io 的说法,您可以展示一个cardview,其中包含您想要的视图,以通知用户当前的网络状态。这样,用户就不会被阻止与应用程序进行交互。 enter image description here

我认为这是许多类型的应用程序中最好的解决方案之一。不阻塞用户界面(这意味着您的应用程序具有离线行为),并且可以轻松地包含在所有布局中。也许可以有一个基础Activity/Fragment类,以便在一个地方管理无网络连接的情况。谢谢! - sunlover3

5
我会选择 Snackbar。它看起来不错,不会阻塞UI,提供动作(不像Toast),同时这些动作不会被强制给用户(不像Activity和Dialog),并且只需要一行代码。就是这么简单。 Activity - 不好的选择,会阻塞UI,需要用户输入,可能会很烦人,并且有样板文件。 Toast - 看起来还可以,但无法指定操作。 Dialog - 使用户操作成为解散的必要条件,看起来不够好。
对于Snackbar,我能想到的唯一缺点是:它最适合与CoordinatorLayout一起使用,如移动布局而不是覆盖它。除此之外,它符合要求。
对于类型TYPE_APPLICATION_OVERLAY,从经验上来看。

4
没有“最佳方式”来处理没有互联网连接的情况。这要取决于各种不同的方面,应该由设计师和/或业务规则来决定。
考虑以下情况:
1. 如果您正在制作一款跟踪用户实时位置的应用程序,以便在发生故障(检查他们是否遇到车祸等)时提供紧急服务,则连接变得越来越重要。在这种情况下,您绝对需要让用户知道没有连接,可能会阻止用户使用UI直到他们再次连接,或者您将不得不提供有限的功能等。
2. 如果您正在开发一款偶尔获取更多信息的应用程序(例如天气应用程序),那么互联网连接真的那么重要吗?您可以显示对话框或重试,或者只显示您上次可用的数据,但它确实并不是每次使用时都必须获取实时数据(再次取决于情况,也可能是)。
对于所有情况,没有单一的解决方案。失去连接并非对所有应用程序都如此严重或重要,这就是为什么这个问题太广泛了。

好的,谢谢您的回复。因此这取决于不同的情况和应用程序。 - sunlover3
是的,用户体验和用户界面设计总是取决于应用程序类型和其他各种因素,没有适用于所有情况的单一解决方案。 - a_local_nobody
是的,这是真的。不过,可能有一种方法可以涵盖多种情况——请参考Taseer Ahmad的答案。使用类似那样的卡片视图可能是一个很好的妥协。但是应用程序仍然需要为离线使用定义行为。再次感谢! - sunlover3

1
实际上,我实现了这个功能而没有使用任何额外的活动、toast或对话框。所以这就是我的想法。实际上,我正在从服务器检索数据并在listView中显示。如果没有网络,我会将用户显示如下。 enter image description here 如果有网络,我会像下面这样显示数据 enter image description here 那么,我是怎么做到的呢?只需使用可见性的概念即可。首先,默认情况下,我将listview的可见性设置为隐藏,将Internet图像和下面的文本设置为可见。如果有网络,我只需将图像和文本的可见性更改为隐藏,并将listview设置为可见。根据您的要求进行调整。有疑问吗?请随意发表评论。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接