从主菜单点击dialer图标
VappMainmenuScr::onAppClicked
srv_appmgr_launch
vapp_dialer_launch_from_phb
vapp_phb_launch
调用类的接口内部流程
VfxAppLauncher::launch//公共接口,通过这个接口可以跳转到下个应用类的接口
VfxAppLauncher::static_launchByMem
VfxAppLauncher::createContext
VfxAppLauncher::onContextReady
VfxAppLauncher::static_run
VfxApp::processRun//这个函数将运行onRun,所以在进入VappPhbApp类之后,会调用VappPhbApp::onRun
VappPhbApp::onRun
进入屏幕
VfxAppScr::show//进入窗体屏幕,如果没有这一句话,将不会看到任何窗体
mmi_frm_scrn_first_enter
mmi_frm_scrn_first_enter_ex
VfxAppScr::static_entry
VfxTopLevel::enterToScreen
VfxTopLevel::processScreenEnter/关键节点1
VfxMainScr::processEnter //这个函数将运行on1stReady,on2stReady,所以在进入VappPhbScr类之后,会调用VappPhbScr::on1stReady
VappPhbScr::on1stReady
>>>>>> VFX_OBJ_CREATE(page, VappPhbPage, this);
VfxObject::init //注意,只要调用VFX_OBJ_CREATE,都会先init
VcpTabCtrlPage::onAfterInit
VcpTabCtrlPage::onDirtyUpdate
VcpTabCtrlPage::doTabSwitch //这个函数将运行onCreateTabPage,所以在进入VappPhbPage类之后,会调用VappPhbPage::onCreateTabPage
VappPhbPage::onCreateTabPage
>>>>>VFX_OBJ_CREATE(page, VappDialerPage, this);
VfxObject::init
VappDialerPage::onInit
>>>>>VFX_OBJ_CREATE(m_dataProvider, VappContactListMenuContentProvider, this);
VfxObject::init
VappContactListMenuContentProvider::onInit
VappContactDialerSearchListData::buildContactList
>>>>>VFX_OBJ_CREATE(m_listContact, VappContactDialerSearchListData, this);
VfxObject::init
VappContactDialerSearchListData::onInit
VfxPage::processEnter //这个函数被调用是引用在VfxMainScr::processEnter函数中on2stReady执行之后,会调用到p->processEnter
//但是这里的p是通过VfxPage *p = VFX_OBJ_DYNAMIC_CAST(info->obj.get(), VfxPage);这句话得来的
VcpTabCtrlPage::onEnter
VfxPage::processEnter//再次调用到这个函数,是因为VfxPage::processEnter函数中在执行onEnter之后,会再次onEntered();
VappDialerPage::onEntered
VappDialerPage::resetDialerList
VappContactListMenuContentProvider::search//调用search
基本的初始化已经完成,所有需要使用的窗体类也已经调用完成,即完成了ON ENTER动作
在enter之后,填充数据,采用signal的形式
下边这段是MTK signal0类的简单流程,用来启动signal。
VfxScreen::processAfterEnter关键节点2
vfx_screen_check_update//这个函数被调用是因为上个函数中VfxTopLevel *topLevel = VFX_OBJ_GET_INSTANCE(VfxTopLevel);
vfx_mmi_check_update
VfxAsyncSignalQueue::processEmit
VfxAsyncSignalUtil::processPostEmit
emitEntry//这个函数来自VfxSignal0类
获取list item总数
VfxControl::processUpdate
VcpBaseListMenu::onUpdate//这个函数被调用是因为VfxControl::processUpdate函数中调用onUpdate
VcpBaseMenu::onUpdate
VcpListMenuLayout::getContentLength
VcpListMenuLayout::getCellCount
VappContactListMenuContentProvider::getCount()
VappContactDialerSearchListData::getTotalCount() //得到list中的总数
在dialer界面自动加锁之后再解锁进入的流程
VappScreenLockFrame::notifyUnlock
m_signalUnlocked.emit
VfxBaseSignal::emitSlots
emitEntry//这个函数来自VfxSignal0类
VappScreenLockPage::onUnlockHandler
vapp_screen_lock_close
VfxAppLauncher::terminate
VfxApp::exit
mmi_frm_group_close
mmi_frm_group_close_ex
scenario_process_post_evt_ex//这个函数中的处理是通过mmi_go_back_to_history起作用
mmi_go_back_to_history
mmi_frm_go_back_to_history_int
scrn_group_adaptor_entry
mmi_frm_shell_active
scenario_process_post_evt_ex
group_post_active
execute_node_active
scrn_active
VfxAppScr::static_entry
VfxTopLevel::enterToScreen
VfxTopLevel::processScreenEnter
VfxMainScr::processEnter
VfxPage::processEnter
VcpTabCtrlPage::onEnter
VfxPage::processEnter
VappDialerPage::onEntered
VappDialerPage::resetDialerList
VappContactListMenuContentProvider::search