@@ -54,23 +54,6 @@ public class XToast<X extends XToast> {
5454 /** 吐司显示和取消监听 */
5555 private OnToastListener mListener ;
5656
57- private XToast (Context context ) {
58- mContext = context ;
59- mWindowManager = ((WindowManager ) context .getSystemService (Context .WINDOW_SERVICE ));
60- // 配置一些默认的参数
61- mWindowParams = new WindowManager .LayoutParams ();
62- mWindowParams .height = WindowManager .LayoutParams .WRAP_CONTENT ;
63- mWindowParams .width = WindowManager .LayoutParams .WRAP_CONTENT ;
64- mWindowParams .format = PixelFormat .TRANSLUCENT ;
65- mWindowParams .windowAnimations = android .R .style .Animation_Toast ;
66- mWindowParams .packageName = context .getPackageName ();
67- // 开启窗口常亮和设置可以触摸外层布局(除 WindowManager 外的布局,默认是 WindowManager 显示的时候外层不可触摸)
68- // 需要注意的是设置了 FLAG_NOT_TOUCH_MODAL 必须要设置 FLAG_NOT_FOCUSABLE,否则就会导致用户按返回键无效
69- mWindowParams .flags = WindowManager .LayoutParams .FLAG_KEEP_SCREEN_ON
70- | WindowManager .LayoutParams .FLAG_NOT_TOUCH_MODAL
71- | WindowManager .LayoutParams .FLAG_NOT_FOCUSABLE ;
72- }
73-
7457 /**
7558 * 创建一个局部悬浮窗
7659 */
@@ -101,6 +84,23 @@ public XToast(Application application) {
10184 }
10285 }
10386
87+ private XToast (Context context ) {
88+ mContext = context ;
89+ mWindowManager = ((WindowManager ) context .getSystemService (Context .WINDOW_SERVICE ));
90+ // 配置一些默认的参数
91+ mWindowParams = new WindowManager .LayoutParams ();
92+ mWindowParams .height = WindowManager .LayoutParams .WRAP_CONTENT ;
93+ mWindowParams .width = WindowManager .LayoutParams .WRAP_CONTENT ;
94+ mWindowParams .format = PixelFormat .TRANSLUCENT ;
95+ mWindowParams .windowAnimations = android .R .style .Animation_Toast ;
96+ mWindowParams .packageName = context .getPackageName ();
97+ // 开启窗口常亮和设置可以触摸外层布局(除 WindowManager 外的布局,默认是 WindowManager 显示的时候外层不可触摸)
98+ // 需要注意的是设置了 FLAG_NOT_TOUCH_MODAL 必须要设置 FLAG_NOT_FOCUSABLE,否则就会导致用户按返回键无效
99+ mWindowParams .flags = WindowManager .LayoutParams .FLAG_KEEP_SCREEN_ON
100+ | WindowManager .LayoutParams .FLAG_NOT_TOUCH_MODAL
101+ | WindowManager .LayoutParams .FLAG_NOT_FOCUSABLE ;
102+ }
103+
104104 /**
105105 * 是否有这个标志位
106106 */
@@ -406,6 +406,16 @@ public void update() {
406406 mWindowManager .updateViewLayout (mRootView , mWindowParams );
407407 }
408408
409+ /**
410+ * 回收
411+ */
412+ public void recycle () {
413+ mContext = null ;
414+ mWindowManager = null ;
415+ mListener = null ;
416+ mDraggable = null ;
417+ }
418+
409419 /**
410420 * 当前是否已经显示
411421 */
0 commit comments