解决浮窗中不能显示dialog问题

来源:互联网 发布:linux 关闭mysql服务 编辑:程序博客网 时间:2024/05/16 13:52

1.Dialog的Context上下文对象必须是Activity,如果需要在浮窗中显示Dialog,浮窗中的上下文对象也应该是Activity;

2.浮窗的优先级不能是系统优先级,应该是应用级的优先级

  /**     * 创建一个大悬浮窗。位置为屏幕正中间。     *     * @param context     *            必须为应用程序的Context.     */    public static UninstallFloatWindow createBigWindow(Context context,Handler handler) {        //得到windowManager实例        WindowManager windowManager = getWindowManager(context);        @SuppressWarnings("deprecation")        int screenWidth = windowManager.getDefaultDisplay().getWidth();        @SuppressWarnings("deprecation")        int screenHeight = windowManager.getDefaultDisplay().getHeight();        if (uninstallFloatWindow == null) {            uninstallFloatWindow = new UninstallFloatWindow(context, handler);            if (uninstallFloatWindowParams == null) {                uninstallFloatWindowParams = new LayoutParams();                //大悬浮窗的初始位置                uninstallFloatWindowParams.y = screenHeight-UninstallFloatWindow.viewHeight;                uninstallFloatWindowParams.x = 0;                uninstallFloatWindowParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;               <span style="color:#FF6666;"> <span style="color:#FF0000;">uninstallFloatWindowParams.type = LayoutParams.LAST_APPLICATION_WINDOW;</span></span>                uninstallFloatWindowParams.format = PixelFormat.RGBA_8888;                uninstallFloatWindowParams.width = LayoutParams.MATCH_PARENT;                uninstallFloatWindowParams.height = LayoutParams.WRAP_CONTENT;                            }            uninstallFloatWindow.setGravity(Gravity.BOTTOM);            windowManager.addView(uninstallFloatWindow, uninstallFloatWindowParams);        }        return uninstallFloatWindow;    }
代码中红色标记部分就是浮窗的类型,优先级是应用级优先级

0 0
原创粉丝点击