[Android] 如何显示来自服务的对话框


Answers

只有在系统警报对话框中,我们才能显示来自服务的对话框。 因此,将TYPE_SYSTEM_ALERT窗口布局参数设置为Dialog,如下所示:

dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

但是,它需要SYSTEM_ALERT_WINDOW权限。 所以,不要忘记在Manifest文件中添加这个许可证。

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

我已经阅读了很多关于这个话题的帖子,但是没有任何对我有用(或者没有我想要的效果)。

我有一个应用程序,登录后启动一个后台服务(Service类的实现)。 该服务将与服务器同步,如果有新的订单,则会创建通知。

到目前为止,一切都很好,我有通知和Toast消息。 但是,我想要一个对话框,通知用户有关新订单。

据我所知,你可以从服务内部开始一个活动,显示对话框。 这可以工作,但活动从当前活动堆栈开始,并显示对话框。 我有一个没有附加视图的活动,但它正确地显示在黑色背景上的对话框。

我想要的是显示当前活动的对话框,导致实际的背景(运行活动)淡入淡出并显示对话框。

这有可能吗?

谢谢你,菲利普




不,你不能劫持不属于你的活动,并命令它显示对话框。 你开始自己的活动的方法是经典之作。