MTK MMI:History管理与EntryNewScreen解析
需积分: 3 62 浏览量
更新于2024-10-24
收藏 58KB DOC 举报
"MTK MMI(Mobile Machine Interface)的常用内容总结,主要涉及History管理机制和EntryNewScreen函数的相关知识,包括全局变量、函数流程以及ExecuteCurrExitHandler的分析。"
在MTK的MMI开发中,History管理机制是控制屏幕切换和回退的关键部分,而EntryNewScreen函数则是实现这一机制的重要函数。以下是关于这些知识点的详细说明:
1. **与EntryNewScreen函数相关的全局变量**:
- `currEntryFuncPtr`:当前进入屏幕的处理函数指针,用于在屏幕切换时执行特定的入口操作。
- `currExitScrnID`:当前退出屏幕的ID,记录了用户即将离开的屏幕。
- `currTopScrnID`:当前顶部屏幕ID,即当前显示的屏幕。
- `currExitFuncPtr`:当前退出屏幕的处理函数指针,用于在退出屏幕时执行特定的退出操作。
2. **EntryNewScreen函数部分流程**:
- **Step1**:保存新的屏幕ID到`currTopScrnID`,标识新的顶级屏幕。
- **Step2**:调用`ExecuteCurrExitHandler`,处理当前屏幕的退出操作。
- **Step3**:更新`currExitScrnID`为新屏幕ID,为后续的回退操作做准备。
- **Step4**:调用`SetGenericExitHandler`设置通用的退出处理程序。
- **Step5**:其他可能的操作,如更新屏幕状态、处理数据等。
3. **ExecuteCurrExitHandler函数分析**:
- 这个函数的主要任务是执行当前屏幕的退出处理程序,同时调用`ExecuteCurrExitHandler_Ext`和`ClearInputEventHandler`。
- 在`ExecuteCurrExitHandler_Ext`中,如果没有当前的入口或退出函数指针,会清除所有中断事件句柄;如果有,会执行相应的菜单退出和屏幕退出操作。`ExitMyAppMenu`用于退出应用程序菜单,并将相关信息入栈。
- `mmu_frm_execute_scrn_exit_handler`变量被设置为`MMI_TRUE`,调用`currExitFuncPtr`指向的函数执行实际的屏幕退出操作,然后恢复为`MMI_FALSE`。
- 最后,`currEntryFuncPtr`和`currExitFuncPtr`被清零,表示当前没有活动的入口或退出处理程序。
这些内容是MTK MMI开发中的基础,理解并熟练掌握这些机制对于编写高效、流畅的屏幕交互至关重要。在实际应用中,开发者需要根据具体的业务需求和界面逻辑,正确地使用和配置这些函数及变量,确保用户在使用设备时的体验。
213 浏览量
244 浏览量
2009-04-29 上传
2012-01-18 上传
2011-12-27 上传
2011-05-05 上传
2011-05-15 上传
yangjun8817
- 粉丝: 3
- 资源: 24
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建