Window attributes属性详解

以下属性以Dialog为例来讲解:

<item name="windowBackground"> 窗体的背景 </item>
<item name="windowFrame">Dialog 是否有边框 </item>
<item name="windowNoTitle">窗体是否有标题</item>
<item name="windowFullscreen">false</item> 是否为全屏
<item name="windowOverscan">false</item> 是否要求窗体铺满整屏幕
<item name="windowIsFloating">false</item> 窗体是否浮在下层之上
<item name="windowContentOverlay">@null</item> 设置窗体内容背景
<item name="windowShowWallpaper">false</item> 是否显示壁纸
<item name="windowTitleStyle">@android :style/WindowTitle</item> 窗体的标题栏Style
<item name="windowTitleSize">25dip</item> 窗体文字大小

Read More

HandlerThread 与 多线程线程池的区别

我在想,handlerthread可以实现异步处理消息,还是批量的。多线程也是异步,处理批量消息。那么这两者的区别呢。

想了想,其实这两者的区别是很大的,多线程注重的并发,可以有多个线程,或者引入线程池进行管理。但是HandlerThread如果是new一个,那么它就是一个线程,一个线程处理多个消息。

还有一个区别,handlerthread的run方法里面是死循环,也就是除非手动调用quit方法线程是不会退出的,而多线程的线程有各自的处理方式,没有固定。

Read More

PopupWindow定时关闭,点击外部或返回键关闭

希望达到的效果:PopupWindow定时关闭,点击外部或返回键关闭且取消定时任务。
解决方案:
1.使用的是Handler的postDelayed方式实现定时任务——关闭PopupWindow
2.如果在定时任务执行之前,用户点击PopupWindow的外部或者back键关闭了弹出窗口,使用handler.removeCallbacks(r),从handler的消息队列中remove之前的runnable对象的回调

Read More