如何在安卓应用的每个屏幕上显示警告消息?



我有一个有几个屏幕的Android应用程序,我想显示一条在发生错误情况时始终可见的消息,如果错误条件消失,我想禁止显示此消息。

"错误条件"是指设备无法将新信息传输到服务器,并且在成功传输后错误条件消失。 消息需要非常清晰,以便无论最终用户在哪个屏幕上,没有人可以否认它是否存在。

理想情况下,我正在寻找一个 UI 元素,该元素可以在出现错误时放置,并在没有错误时删除,该元素将存在于所有屏幕上,并且在理想情况下可以由最终用户移动(因此最终用户可以决定此 UI 元素应该在屏幕上的位置), 但未被抑制(我不希望任何人禁止该消息并声称他或她没有看到它)。

我自然希望有一点代码来创建这个 UI 元素并允许它浮动在应用程序的所有屏幕前面,但如果绝对必要,我可以创建代码来添加所有屏幕上都存在的特殊错误条件 UI 元素。

有没有人对符合要求的 UI 元素有任何建议?

---------------澄清-------------------

我建议(甚至实现了一个原型)一些东西,当发生错误时生成通知,并在错误解决时关闭烤面包机通知,但这被认为是不可接受的,因为它没有产生永久警告,直到错误条件解决才会消失。 有人告诉我,问题是最终用户可能会关闭通知,然后继续工作并忘记他或她已关闭通知,然后抱怨通知的后果(他们的订单从未通过,因为设备无法将其传输到服务器)。

我还建议每次设备无法传输某些内容时都会发出警告,但该解决方案也被认为是不可接受的,因为如果用户将设备带到没有互联网的地方,他或她将不得不不断关闭通知,这将很烦人,因此是不可接受的。 通知必须是被动的(例如,不需要用户执行操作即可关闭)。

在互联网恢复之前,我不想关闭设备 - 即使不将所述内容传输到服务器,设备也可以继续将内容制成表格。 我只是想确保远程智能人员绝对不可能说他或她不知道他们的信息没有被发送到服务器。

值得注意的是,设备无法与服务器通信的最常见原因是设备没有连接到互联网。 用户将设备带到没有互联网连接的非常偏远的地方,因此设备没有希望与服务器通信,直到它返回到不太偏远或具有允许设备使用的无线互联网的地方。

这可能不是最优雅的解决方案,但你可以

  • 在所有屏幕中包含警告布局;它可以只是屏幕顶部/底部的一个TextView,角落里的一个可点击的小警报ImageView,在对话框/Toast中显示信息或更复杂的内容,具体取决于您的需求
  • 使用基本活动,您的所有活动都将从中扩展
  • 只要满足条件并onResume基本活动,显示/隐藏此布局

如果只是关于互联网连接,您还可以在BaseActivity中设置一个BroadcastReceiver,这将显示/隐藏警告布局。

我制作了一个 Toast 库,其中包含为我的一个项目预定义的消息。它有错误,警告,wifi警告等。我已经在 Toast 小部件之上构建了它。 ToastRect github链接

或者,您可以在对话框片段之上构建一些只能由用户关闭的内容。

最新更新