[Android]Service可以显示对话框?

嗯,总有一些莫名其妙的需求,不过,仔细一想,这种情况还是存在的,比如手机电量低时,会弹出一个警告对话框,还有闹钟也会弹对话框,好,那就看看怎么来实现吧。

1.让service启动一个activity,该activity实际上是一个dialog类型,设置theme如下:

android:theme="@android:style/Theme.Dialog"

有个开源项目android-smspopup就是用的这个方法。

2.不使用activity

AlertDialog alertDialog = new AlertDialog.Builder(this)
                    .setTitle("Title")
                    .setMessage("Are you sure?")
                    .create();

alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();

在manifest里要用到一个权限:

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

3. 基本上以上两个办法就可以了,更详细的讨论可以参考下这篇文章

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注