文档章节

TV开机启动无焦点问题

j
 jachensy
发布于 2014/01/02 15:36
字数 654
阅读 202
收藏 0
  1. win.mEnterAnimationPending = true;  

  2. mPolicy.getContentInsetHintLw(attrs, outContentInsets);  

  3. if (mInTouchMode) {  

  4.     res |= WindowManagerImpl.ADD_FLAG_IN_TOUCH_MODE;  

  5. }  

  6. if (win == null || win.mAppToken == null || !win.mAppToken.clientHidden) {  

  7.     res |= WindowManagerImpl.ADD_FLAG_APP_VISIBLE;  

  8. }  

        这段代码做了四件事情。

        第一件事情是将前面所创建的一个WindowState对象win的成员变量mEnterAnimationPending的值设置为true,表示当前正在增加的窗口需要显示一个进入动画。

        第二件事情是调用WindowManagerService类的成员变量mPolicy所描述的一个窗口管理策略器的成员函数getContentInsetHintLw来获得当前正在增加的窗口的UI内容边衬大小,即当前正在增加的窗口可以在屏幕中所获得的用来显示UI内容的区域的大小,这通常是要排除屏幕边框和状态栏等所占据的屏幕区域。

       第三件事情是检查WindowManagerService类的成员变量mInTouchMode的值是否等于true。如果等于true的话,那么就说明系统运行在触摸屏模式中,这时候这段代码就会将返回值res的WindowManagerImpl.ADD_FLAG_IN_TOUCH_MODE位设置为1。

        第四件事情是检查当前正在增加的窗口是否是处于可见的状态。从第二个if语句可以看出,由于WindowState对象win的值在这里不可以等于null,因此,这里只有两种情况下,前正在增加的窗口是处于可见状态的。第一种情况是WindowState对象的成员变量mAppToken的值等于null,这表明当前正在增加的窗口不是一个应用程序窗口,即不是一个Activity组件窗口,那么它就有可能是一个子窗口。由于子窗口通常是在其父窗口处于可见的状态下才会创建的,因此,这个子窗口就需要马上显示出来的,即需要将它的状态设置为可见的。第二种情况是WindowState对象的成员变量mAppToken的值不等于null,这表明当前正在增加的窗口是一个应用程序窗口。在这种情况下,WindowState对象的成员变量mAppToken指向的就是一个AppWindowToken对象。当这个AppWindowToken对象的成员变量clientHidden的值等于false的时候,就表明它所描述的一个Activity组件是处于可见状态的,因此,这时候就需要将该Activity组件的窗口(即当前正在增加的窗口)的状态设置为可见的。在当前正在增加的窗口是处于可见状态的情况下,这段代码就会将返回值res的WindowManagerImpl.ADD_FLAG_APP_VISIBLE位设置为1。


本文转载自:http://blog.csdn.net/luoshengyang/article/details/8275938

j
粉丝 1
博文 4
码字总数 4401
作品 0
武汉
私信 提问
关于“无焦点下获取条形码

@我叫李冠男 你好,想跟你请教个问题:关于你说的“无焦点下获取条形码”http://www.oschina.net/code/snippet_934211_27611。我用WPF程序尝试,没有任何反应 ,打断点 也没有任何的反应,我...

y19890902q
2015/11/30
149
0
(十九)c#Winform自定义控件-停靠窗体

前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。 开源地址:https://gitee.com/kwwwvagaa/netwinformcustom_control 如果觉得写的还行,请点个 star 支持一下...

冰封一夏
08/16
0
0
Linux下获取进程的启动时间的几种方法

1.使用ps显示的进程运行后到现在经过的时间进行计算(Via) Script by ihipop 2.通过procfs里面的jiffies时间计算(Via) 在Linux系统中,时间管理有两个基本概念:xtime和jiffies。 xtime主要给...

panzhc
2014/01/16
3K
0
电信盒子HG680-J 1.3.7刷机升级

盒子使用的是Android系统,已经升级到1.3.7版了,按照网上说的方法刷当贝市场或沙发管理都启动不成功,可能是网上这个帖子太多,直接被电信升级系统后封杀了,没法用,只好用其它方法曲线升级...

newthink
2018/06/26
0
0
android有用代码片段 (一)

有时候,需要一些小的功能,找到以后,就把它贴到了博客下面,作为留言,查找起来很不方便,所以就整理一下,方便自己和他人。 一、 获取系统版本号: [java]view plaincopyprint? PackageIn...

curitis
2012/05/18
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

db.properties

jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=falsejdbc.username=rootjdbc.pas......

行者终成事
22分钟前
3
0
从 Storm 到 Flink,汽车之家基于 Flink 的实时 SQL 平台设计思路与实践

在 2019 年之前,之家的大部分实时业务都是运行在 Storm 之上的。Storm 作为早期主流的实时计算引擎,凭借简单的 Spout 和 Bolt 编程模型以及集群本身的稳定性,俘获了大批用户。下图是实时计...

阿里云官方博客
23分钟前
4
0
网络安全-Day04

2.1.1 什么是SQL注入 2.1.2 注入分类 2.1.3 MySQL手工注入 2.1.4 sqlmap使用 2.1.5 总结 什么是SQL注入 SQL注入漏洞原理 什么是SQL 结构化查询语言(Structured Query Language),是一种特殊目...

Jerry1101
23分钟前
3
0
docker容器内安装yum,vim等命令,以及配置ls指令

使用国内镜像 mv /etc/apt/sources.list /etc/apt/sources.list.bakecho "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.listecho "deb http://......

长恭
23分钟前
3
0
超详细的MySQL8.0.17版本安装教程

下载MySQL MySQL的官网地址:https://www.mysql.com/。 如下图所示: 然后点击DOWNLOADS ==> Community,选择MySQL Community Server。如图所示: 滑到页面的最下面,找到Recommended Downl...

彩色泡泡糖
27分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部