Android 如何在kill状态下显示对话框/弹出应用程序?

Android 如何在kill状态下显示对话框/弹出应用程序?,android,broadcastreceiver,android-alertdialog,Android,Broadcastreceiver,Android Alertdialog,我想在应用程序处于kill状态并且BroadcastReceiver接收任何操作时显示对话框/弹出窗口 MyReceiver.java public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { MyDialog.showDialog(context); } } 我已在清单中添加了权限 &

我想在应用程序处于kill状态并且
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>

@颜色/原色
@颜色/原色暗
@颜色/颜色重音

“我的对话框”不会在“活动终止”状态下显示,但会调用“接收器”。

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

1。第一种方法

创建对话活动:

2。第二

创建弹出窗口:

编辑


如果应用程序不在前台,请不要这样做。在进一步思考之前,请先查看通知

。调查一下。如果你仍然想使用dialog,那么会有帮助。ThxI已经尝试过了,但是dialog没有显示在前台和kill状态。如果你阅读了第一个链接,正如它所说的,它违反了Android设计和UI准则,那么为什么你不使用带有dialog主题的通知或活动呢。如果你的应用程序遵循指导原则,并且不会因为屏幕上的随机弹出而激怒用户,那就更好了。假设你正在为客户端制作一个应用程序,你必须实现这些类型的东西,然后你告诉他们
这违反安卓设计和用户界面指导原则。
。是的,当然。为什么不呢。由技术为用户体验而制定的指南,而不是由客户制定的。再见我知道如何在活动中显示对话框和弹出窗口,但我想在我已经提到的
BroadcastReceiver
中显示它。你不能在没有活动上下文的情况下启动对话框。应用程序中的kill state不支持弹出窗口,这违反了设计或ui指导线。我已经在多个应用程序中看到过,如whatsapp等。你是如何发现whatsapp显示的是一个对话框而不是一个带有DilogTheme的活动的?