Telephony中大量的消息处理与传递都是靠handler与Looper来完成,若是有遇到消息处理(例如某一个message处理太久)导致问题,可以在适当位置按照如下方式打开Looper处理message的相关log查看。
[SOLUTION]
Looper中提供了setMessageLogging(Printer printer)接口可以用来打开Looper.loop()中相关log信息。
例如:
先import android.util.LogPrinter;
然后可以在拨打电话时,加入以下代码,打开log:
Looper.myLooper().setMessageLogging(new LogPriner(Log.DEBUG,LOG_TAG));
在电话挂断后,加入以下代码关闭log:
Looper.myLooper().setMessageLogging(null);
这样就可以打开整个电话流程中,Phone主线程的Looper对于Message的处理情况。