问题:应用支持华为平行视界后测试发现主activity点击打开一个activity后,再点击左边activity不响应,点击第二次恢复正常。
分析过程:查看activity生命周期后发现,在打开第二个activity后发现左边activity进入onPause状态,此时点击左边无响应,发现左边进入了onResume状态,再次点击响应了。怀疑是生命周期出了问题导致,官方文档是这么描述的:
左右Top Activity同时以multi-resume运行
平行视界双窗口状态下,右边Top Activity始终为resumed状态,左边Top Activity为resumed或者paused状态,系统默认应用支持multi-resume,如果应用希望不支持multi-resume,可以在应用AndroidManifest.xml中增加meta-data字段来关闭:
meta-data android:name="android.allow_multiple_resumed_activities" android:value="false"
但应用本地分明设置了打开这个属性,测试现象说明没生效?
<meta-data
android:name="android.allow_multiple_resumed_activities"
android:value="true"/>
没办法,官方的问题技术支持没有那么及时,且竞品功能正常。只能继续查找问题原因。
监控onTouchListener发现onPause状态下没有up事件,onResume状态下事件正常,难道跟这有关???至此,好像进入了死胡同。
后来发现其实是基类onResume中做了一些处理导致此问题,注释后功能就正常了。但是原因还没弄清楚,涉及到应用的历史代码。
总结:如果按照分析点击事件的思路查下去,会非常耗时且无进展。还是应该在生命周期里进行问题分析。没有思路的时候不可太固化,可以从其他角度多试试。