Android 11 Recent按键流程

您所在的位置:网站首页 手机中home键是哪个键 Android 11 Recent按键流程

Android 11 Recent按键流程

2024-07-07 00:26| 来源: 网络整理| 查看: 265

Recent 按键有三种,实体按键、虚拟导航键、手势导航。除了手势导航外(主要是launcher中监听滑动事件判断处理:Android 手势导航),实体按键和虚拟导航键流程基本一致,只有前面监听的方式不同:

一、实体按键监听

按键上报到 PhoneWindowManager.java 中,按照 KeyEvent.KEYCODE_APP_SWITCH 按键事件处理执行 statusbar.toggleRecentApps() ,实现在 StatusBarManagerService.toggleRecentApps() 方法中。

@Override public void toggleRecentApps() { if (mBar != null) { try { mBar.toggleRecentApps(); } catch (RemoteException ex) {} } }

这里 mBar.toggleRecentApps() 通过 Binder 机制跨进程调用 SystemUI 中的 CommandQueue toggleRecentApps()

二、虚拟导航键监听

NavigationBarFragment 中对 RecentsButton 注册监听回调 onRecentsClick

private void onRecentsClick(View v) { if (LatencyTracker.isEnabled(getContext())) { LatencyTracker.getInstance(getContext()).onActionStart( LatencyTracker.ACTION_TOGGLE_RECENTS); } mStatusBarLazy.get().awakenDreams(); mCommandQueue.toggleRecentApps(); }

点击虚拟导航栏的 RecentsButton 就执行 CommandQueue toggleRecentApps()

三、Recent 加载

 Android 在9.0之前 Recents 是在 SystemUI 模块中,从9.0后 Recents 分开在 SystemUI 和 Launcher 中,最终由 Launcher 进行界面显示。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3