我正在创建一个应用程序,该应用程序需要从非活动的类中弹出警告对话框。我尝试在AlertDialog构建器的帮助下创建一个并传递上下文,但每当我尝试显示警报时,应用程序都会停止工作。当我使用相同的方法在它的主要活动中创建一个AlertDialog时,但如果我这样做,它就不会在我想要的时候弹出。无论如何我可以从一个不是活动的类中创建一个AlertDialog吗?或者我可以从类中访问活动引用,以便我可以使用它来创建警报?
请注意,该类是作为服务的结果创建的,而不是直接从main活动使用constructer,因此我无法通过构造函数传递主活动引用。目前我已经发出通知代替警报,但我更愿意发出警报而不是通知。
答案 0 :(得分:0)
目前,通知是支持通知用户来自服务器的方法的原因。如果您想了解更多有关您不应该使用它们的原因,请查看this answer。如果在这种情况下不能让您重新考虑使用对话框,那么这里是如何从服务中显示一个。
首先,你需要建立一个对话框:
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("Title")
.setMessage("Message")
.create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
然后添加此权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />