首页 > 解决方案 > 如何在 Android 应用程序的每个屏幕上显示警告消息?

问题描述

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

“错误条件”是指设备未能将新信息传输到服务器,并且错误条件在成功传输后消失。消息需要非常清晰,这样无论最终用户在哪个屏幕上,如果它存在,任何人都无法否认看到它。

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

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

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

--------------- 说明 -------------------

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

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

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

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

标签: android

解决方案


它可能不是最优雅的解决方案,但您可以

  • 将警告布局包含在所有屏幕中;它可以只是TextView屏幕顶部/底部的ImageView一个,角落中的一个可点击的小警报,在对话框/吐司中显示信息或更复杂的东西,具体取决于您的需要
  • 使用 BaseActivity,您的所有活动都将从中扩展
  • 每当满足您的条件和onResumeBaseActivity 时,显示/隐藏此布局

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


推荐阅读