【发布时间】:2014-03-26 23:33:04
【问题描述】:
我想向用户显示一些异步事件的消息。例如警报到期。我想显示一个弹出窗口或对话框,该弹出窗口或对话框显示在当前的前台(这可能是其他一些应用程序活动)上,将当前活动留在后台。
有没有办法在 Android 中做到这一点?
【问题讨论】:
标签: android
我想向用户显示一些异步事件的消息。例如警报到期。我想显示一个弹出窗口或对话框,该弹出窗口或对话框显示在当前的前台(这可能是其他一些应用程序活动)上,将当前活动留在后台。
有没有办法在 Android 中做到这一点?
【问题讨论】:
标签: android
首先,你会被告知这是一件坏事,它违反了 Android 的做事方式。用户不喜欢这样。并且通知区域是执行此操作的更好方法。
也就是说……有办法做到这一点……
Toast 将显示无论屏幕上的哪个活动。因此,您可以设置一个后台线程(或者更好的是Service),它将在Toast 中显示您的信息。这对您来说可能已经足够了。
您可能会发现查看some Toast source code here 很有用。
这里还有一个很好的页面,介绍了如何通过将默认 View 替换为您自己的布局来创建自定义 Toast 布局。 (我没做过,不过看起来挺有意思的):
另一种方法要困难得多,它是显示一个系统覆盖窗口。不幸的是,您必须做很多工作才能正确设置这些设置。
以下是我用来使其正常工作的一些相关问题:
其中每一个都有指向许多其他问题的链接 - 这里有很多系统覆盖问题。
但要记住的事情:
再说一次,我也相信通知区域是一种更好的 UI 模式,所以我建议你先尝试一下。它更容易做到,而且我们大多数人都期望这种行为而不是弹出窗口。
弹出窗口的问题在于它可能会打断我正在观看的电影。或者我正在玩的游戏。
【讨论】:
是的,我为背景和前景的收入事件创建了两个对话框
【讨论】: