标题:
一个方法
重复计时器的间隔是7000。期望的逻辑顺序是先走一次Reconnect(),之后每间隔7000就跑一次定义的TimerInvokeType.AutoReconnect计时器方法,这个计时器方法也是走Reconnect()。在编辑器模式下是正常运行,但是在安卓中。会瞬间跑两次Reconnect(),也就是安卓中计时器方法没有等待时间间隔。请问有没有人遇到同样的问题呢。
laoyao 创建计时器是否算作一次调用?如果是,那不就是瞬间两次了
laoyao 找到问题了,这个定时器事件是在Unity的OnApplicationPause方法委托调用的。当安卓切到后台,会暂停,当切回来的时候会开始并首先调用这个函数。而与此同时定时器依赖于TimeInfo中的FrameTime字段作为起始时间,并且这个字段是在update中刷新。那么此时OnApplicationPause触发的时候FrameTime还没有刷新。所以就会出现定时器事件瞬间触发的问题。解决方法就是在OnApplicationPause的委托中先手动刷新FrameTime字段为最新就OK了。
Liquor 看了源码,创建不算调用一次。奇怪的是在编辑器和在安卓端运行不一致
加log看看是不是启动了两个计时器
Long 加了log的,确实一个计时器。两个方法的调用一个堆栈是startreconnect方法,一个调用时autoreconnect_atimer