Service启动Dialog及小米手机无法弹出Dialog问题
2016-04-14 10:17
1006 查看
1、Service中启动Dialog
默认情况下,Dialog需要依附在一个Activity或Fragment上,无法直接在Service弹出一个Dialog。
如果需要在在servcie中显示,则需要把dialog设置成一个系统的dialog,即全局 性质的提示框。
2、小米手机上Service无法弹出Dialog问题
1)需要设置应用 显示悬浮窗口
设置 -> 其他应用管理 -> 相关应用 -> 页面底部的权限管理 -> 勾选显示悬浮窗
2)可以使用Dialog样式的Activity来显示。
默认情况下,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来显示。
相关文章推荐
- 模仿微信图片点击全屏效果 (2)
- 在滚动视图上添加子视图(UIScrollView)
- spring使用AOP时the prefix aop for element is not bound.和no declaration can be found错误
- SGU 107 987654321 problem(打表)
- spring事务机制
- 使用VS2010创建MFC ActiveX工程项目
- 用Java进行AES256-ECB-PKCS7Padding加密
- CSS中关于多个class样式设置的不同写法
- 书籍推荐
- 安装 Ruby 环境 -for-MAC
- 模仿微信图片点击全屏效果 (2)
- Python之sys模块
- 基于opencv的感兴趣区域ROI的操作
- 关于maven 添加第三方jar包
- Task一个轻量级分布式任务计算系统
- dubbo:registry
- 操作系统对多核技术的支持
- 科学计数法的坑爹
- linux socket断开网络连接程序终止
- LeetCode 198 House Robber 打家劫舍