fixed crack on android when schedule mixed with "TimerTargetCallback" and other “Timer”

when a node was scheduled with same “Timer” that is not "TimerTargetCallback", call "schedule" method with parameter "key", it will crack on same android devices at line "if (key == timer->getKey())".  
"static_cast" is an unsafe conversion from a pointer of a base class to a pointer of a derived class, timer->getKey() will access over range , so i think it should replace with "dynamic_cast".