当前位置: 首页 > news >正文

做网站软件frontpage/口碑营销名词解释

做网站软件frontpage,口碑营销名词解释,网站建设意思,安全质量报监建设局网站在android中,所有的按键、触屏等事件,都是从顶至下进行分发的。每个ViewGroup子类对象会维持一个Focused变量。它表示在这个控件中具有Focused控件(此控件或是其子控件)。当有按键发生时 会沿着Focuse Path 找到RealFocus 控件&am…
在android中,所有的按键、触屏等事件,都是从顶至下进行分发的。每个ViewGroup子类对象会维持一个Focused变量。它表示在这个控件中具有Focused控件(此控件或是其子控件)。当有按键发生时 会沿着Focuse Path 找到RealFocus 控件(是真正Focused 控件,不是其子控件具有焦点)。同理触屏事件的分发也是如此,只不过和Focuse无关。父控件会遍历所有子控件,看看谁处于触碰事件,并分发给它。

如果Home key、Menu key,Back Key,Enter key事件(或许还有别的按键)(一些特殊功能的按键,声音等等)发生时 ,会产生一个FINISHED_EVENT 消息,是由InPutMethodManagerService通过AIDL进程调用产生 。
在ViewRoot 中捕获。
       case FINISHED_EVENT:
handleFinishedEvent(msg.arg1, msg.arg2 != 0);
break;
void handleFinishedEvent(int seq, boolean handled) {
final KeyEvent event = (KeyEvent)retrievePendingEvent(seq);
if (DEBUG_IMF) Log.v(TAG, "IME finished event: seq=" + seq
+ " handled=" + handled + " event=" + event);
if (event != null) {
final boolean sendDone = seq >= 0;
if (!handled) {
deliverKeyEventToViewHierarchy(event, sendDone);
return;
} else if (sendDone) {
if (LOCAL_LOGV) Log.v(
"ViewRoot", "Telling window manager key is finished");
try {
sWindowSession.finishKey(mWindow);
} catch (RemoteException e) {
}
} else {
Log.w("ViewRoot", "handleFinishedEvent(seq=" + seq
+ " handled=" + handled + " ev=" + event
+ ") neither delivering nor finishing key");
}
}
}

普通按键 发生时,产生DISPATCH_KEY_FROM_IME 消息 由ViewRoot捕获此消息
        case DISPATCH_KEY_FROM_IME: {
if (LOCAL_LOGV) Log.v(
"ViewRoot", "Dispatching key "
+ msg.obj + " from IME to " + mView);
KeyEvent event = (KeyEvent)msg.obj;
if ((event.getFlags()&KeyEvent.FLAG_FROM_SYSTEM) != 0) {
// The IME is trying to say this event is from the
// system! Bad bad bad!
event = KeyEvent.changeFlags(event,
event.getFlags()&~KeyEvent.FLAG_FROM_SYSTEM);
}
deliverKeyEventToViewHierarchy((KeyEvent)msg.obj, false);
} break;

上面两大类按键如果预先没有别处理,都会由deliverKeyEventToViewHierarchy(event, sendDone);进行分发。

分发路径:PhoneWindow.DecorView dispatchKeyEvent----》Activity dispatchKeyEvent ----》Window superDispatchKeyEvent --->DecorView superDispatchKeyEvent-->Super dispatchKeyEvent,后续按着 Focus Path分发。如果上述分发中未被处理
会执行Activity dispatchKeyEvent 中的如下代码:
event.dispatch(this, decor != null
? decor.getKeyDispatcherState() : null, this);

进一步调用Focus Path中的 View 的 onXXX方法。如果在这些回调方法中,按键未被处理,则进一步由 PhoneWindow.DecorView中dispatchKeyEvent方法的代码
return isDown ? PhoneWindow.this.onKeyDown(mFeatureId, event.getKeyCode(), event)
: PhoneWindow.this.onKeyUp(mFeatureId, event.getKeyCode(), event);

处理了:volumn key ,back key 等等按键。

了解了这些就可以游刃有余地截获按键事件。。


“Home key”如果应用程序中没有截获,则最后调用 Activity 中的onBackPressed
默认实现:
    /**
* Called when the activity has detected the user's press of the back
* key. The default implementation simply finishes the current activity,
* but you can override this to do whatever you want.
*/
public void onBackPressed() {
finish();
}
http://www.jmfq.cn/news/5248027.html

相关文章:

  • 网站流量提升方法/手机制作网站的软件
  • 自己电脑做网站/关键词排名监控
  • 淮安哪里有做网站的/搜索引擎优化简称seo
  • 地推项目平台/兴安盟新百度县seo快速排名
  • 做网站分类链接/磁力蜘蛛搜索引擎
  • 网络营销课程多少钱/跟我学seo
  • 正规的网站制作电话多少/公司免费推广网站
  • 做外贸的经常浏览的三个网站/企业查询官网入口
  • wordpress不能发文章_只能在标题内写字/最优化方法
  • 深圳联雅网站建设/托管竞价推广公司
  • 网站可以做2个公司的吗/网络推广公司企业
  • 360极速浏览器网站开发缓存/百度人工客服在哪里找
  • 内部网站建设拓扑/站长工具源码
  • 所得税汇算是在12366网站做吗/长沙快速排名优化
  • 查看一个网站的备案人/信息流优化师没经验可以做吗
  • 注册500万公司每月交税/运营推广seo招聘
  • 网站做301打不开/产品网络营销策划方案
  • 望野拼音版注音/河南seo优化
  • 药品在网站上做标签有哪些分类/河南百度关键词优化排名软件
  • 青岛建网站多少钱/中文搜索引擎有哪些平台
  • 民政网站建设情况汇报/百度指数手机版
  • 网站代码怎么改/seo网站关键词优化软件
  • 帝国cms怎么做电影网站/企业网站类型有哪些
  • wordpress 手机浏览器/广州seo推广服务
  • 网站建设宣传/网络营销的专业知识
  • 阿克苏网站建设公司/网络推广协议合同范本
  • 做响应式网站最大宽度/中国纪检监察报
  • 云南做网站报价/百度教育会员
  • 肃宁县做网站价格/网络营销服务平台
  • 机房网络建设方案/如何优化seo