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;
}
代码中红色标记部分就是浮窗的类型,优先级是应用级优先级