【问题标题】:How to show a popup window on another actvity如何在另一个活动上显示弹出窗口
【发布时间】:2014-03-26 23:33:04
【问题描述】:

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

有没有办法在 Android 中做到这一点?

【问题讨论】:

    标签: android


    【解决方案1】:

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

    也就是说……有办法做到这一点……


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

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

    这里还有一个很好的页面,介绍了如何通过将默认 View 替换为您自己的布局来创建自定义 Toast 布局。 (我没做过,不过看起来挺有意思的):


    另一种方法要困难得多,它是显示一个系统覆盖窗口。不幸的是,您必须做很多工作才能正确设置这些设置。

    以下是我用来使其正常工作的一些相关问题:

    其中每一个都有指向许多其他问题的链接 - 这里有很多系统覆盖问题。

    但要记住的事情:

    1. 在过去,您可以在顶部放置一个系统覆盖,然后发送 触及下面的活动。这已经不可能了, 所以很多答案现在已经过时了。
    2. 您可能需要 使用提供的示例中的标志来准确获取 您要达到的效果。并非所有示例都使用相同的 标志,因此每个解决方案的方式存在一些细微的差异 有效。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-26
        • 1970-01-01
        • 2022-09-28
        • 1970-01-01
        • 2019-08-23
        • 1970-01-01
        相关资源
        最近更新 更多