您的位置:首页 > 其它

Service启动Dialog及小米手机无法弹出Dialog问题

2016-04-14 10:17 1006 查看
1、Service中启动Dialog

默认情况下,Dialog需要依附在一个Activity或Fragment上,无法直接在Service弹出一个Dialog。

如果需要在在servcie中显示,则需要把dialog设置成一个系统的dialog,即全局 性质的提示框。

1)需要在AndroidMan`这里写代码片`ifest.xml中添加权限


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


2)将Dialog设置为:


WindowManager.LayoutParams.TYPE_SYSTEM_ALERT


3)代码实现


AlertDialog.Builder builder = new Builder(mContext);
builder.setMessage("msg info");
builder.setTitle("title");
builder.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
//
Dailog dialog = builder.create();
//
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(dm);
if (dm.heightPixels > dm.widthPixels) {
lp.width = dm.widthPixels;
}
else {
lp.width = (int) (dm.widthPixels * 0.8f);
}
dialog.getWindow().setAttributes(lp);

dialog.show();


2、小米手机上Service无法弹出Dialog问题

1)需要设置应用 显示悬浮窗口

设置 -> 其他应用管理 -> 相关应用 -> 页面底部的权限管理 -> 勾选显示悬浮窗

2)可以使用Dialog样式的Activity来显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: