如何在另一个活动上显示弹出窗口

时间:2014-03-26 15:15:07

标签: android

我想向用户显示一些异步事件的消息。例如,警报到期。我想显示一个显示在任何活动上的弹出窗口或对话框,这是当前的前景(这可能是其他一些应用程序活动),将当前活动留在背景中。

有没有办法在Android中这样做?

enter image description here

2 个答案:

答案 0 :(得分:4)

首先,你会被告知这是一件坏事,它违背了Android的做事方式。用户不喜欢这个。并且通知区域是更好的方法。

那说......有办法实现这个目标......


无论屏幕上有哪个活动,都会显示Toast。因此,您可以设置一个后台线程(或更好的Service),以便在Toast中显示您的信息。这对你来说可能已经足够了。

您可能会发现查看some Toast source code here非常有用。

此处有一个很好的页面,介绍如何通过将您自己的默认Toast替换为默认View来创建自定义{{1}}布局。 (我没有这样做,但看起来很有趣):


替代方案要困难得多,并且要显示系统覆盖窗口。不幸的是,你必须做很多工作才能正确设置这些设置。

以下是我用来使其发挥作用的一些相关问题:

每个都有许多其他链接 - 这里有大量的系统覆盖问题。

但要记住的事情:

  1. 在过去,您可以将系统叠加层置于顶部,然后发送 触及下面的活动。这已不再可能, 所以现在很多答案已经过时了。
  2. 您可能需要     在提供的示例中使用标志来完全获取     你的目标是什么。并非所有示例都使用相同的     标志,所以每种解决方案都有一些微妙的差异     作品。

  3. 然后,我再次相信Notification区域是一个更好的UI模式,所以我建议你先尝试一下。它更容易做,我们大多数人都期望这种行为而不是弹出窗口。

    弹出窗口的问题在于它可能会打断我正在观看的电影。或者是我正在玩的游戏。

答案 1 :(得分:0)

是的,我为背景和前景创建了两个收入事件对话框