【问题标题】:How to show dialog/popup application in kill state?如何在终止状态下显示对话框/弹出应用程序?
【发布时间】:2020-11-16 13:09:53
【问题描述】:

我想在应用程序处于终止状态并且BroadcastReceiver 收到任何操作时显示对话框/弹出窗口。

MyReceiver.java

public class MyReceiver extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
       MyDialog.showDialog(context);
   }
}

我在清单中添加了权限。

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

我在前台活动时遇到异常

原因:java.lang.IllegalStateException:您需要在此活动中使用 Theme.AppCompat 主题(或后代)。

style.xml

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

我的对话框未显示在活动终止状态,但调用了接收器。

【问题讨论】:

  • 在您进一步思考之前。看看This answer。如果您仍然想进行对话,那么This answer 会有所帮助。Thx
  • 我试过了,但是对话框没有显示在前台和杀死状态。
  • 如果您阅读了第一个链接,因为它说它违反了 Android 设计和 UI 准则,那么您为什么不使用带有对话框主题的通知或活动。如果您的应用遵循指南并且不要通过屏幕上的随机弹出窗口来激怒用户,那就更好了。
  • 假设您正在为客户制作一个应用程序并且您必须实现这些类型的东西然后您告诉他们it goes against Android design and UI guidelines
  • 是的,为什么不呢。由技术制定的用户体验指南,而不是客户。再见

标签: android broadcastreceiver android-alertdialog


【解决方案1】:

实际上,在这种情况下,或者没有活动,您无法启动任何类型的对话框。

1.第一种方法

创建一个对话活动:How to make dialog activity

2。第二个

创建弹出窗口:How to make a simple android popup window?

编辑

如果应用程序不在前台,请不要这样做。前往通知

【讨论】:

  • 我知道如何在活动中显示对话框和弹出窗口,但我想在 BroadcastReceiver 中显示它。
  • 我已经提到过。您无法在没有活动上下文的情况下启动对话框。
  • 并且在应用程序杀死状态下不要去弹出孩子的东西,它违反设计或 ui 指导方针
  • 我在whatsapp等多个应用中见过
  • 您如何发现 whatsapp 显示的是对话框而不是 DilogTheme 的活动?
猜你喜欢
  • 1970-01-01
  • 2011-01-25
  • 2020-04-23
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多