Android开源库LocAPI的LocEngAdapter类中sendMsg()函数的机制

问题描述

我正在深入阅读 Android 开源项目中与位置相关的组件。看了Location Engine的源码(https://android.googlesource.com/platform/hardware/qcom/gps/+/android-5.0.0_r2/loc_api/libloc_api_50001/loc_eng.cpp),发现有很多函数调用了LocEngAdapter类的sendMsg()方法。例如,以下代码(从第 1757 行到 1769 行):

int loc_eng_start(loc_eng_data_s_type &loc_eng_data){
   ENTRY_LOG_CALLFLOW();
   INIT_CHECK(loc_eng_data.adapter,return -1);
   if(! loc_eng_data.adapter->getUlpProxy()->sendStartFix(){
       loc_eng_data.adapter->sendMsg(new LocEngStartFix(loc_eng_data.adapter));
   }
   EXIT_LOG(%d,0);
   return 0;
}

我深入研究了这个函数,注意到它会调用 msg_q.c 文件https://android.googlesource.com/platform/hardware/qcom/gps/+/android-5.0.0_r2/utils/msg_q.c)中的 msg_q_snd() 函数,从第 185 行到第 221 行。我只看到这个函数只推送消息进入创建的消息队列。谁能告诉我如何发送消息以及在哪里接收这些消息?如果可能,请向我提供描述这些内容的源代码部分

非常感谢大家!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)