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