我正在尝试从UI线程的单独线程运行android.animation.ValueAnimator。据我了解,ValueAnimator只能从UI线程运行。有没有一种正确的方法从另一个线程启动它以在UIThread上运行?
我将ValueAnimator包装在另一个类中,该类包含UI线程定期检查的开关。
private ArrayList<Animation> animators;
public void onResume(){
while(true)
{
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
checkAnimations();
}
}
public void checkAnimations()
{
for(Animation va: animators)
{
if(va.animationHasStarted())
va.actuallyStartTheAnimation();
}
}
public void RegisterAnimation(Animation valueAnimator)
{
animators.add(valueAnimator);
}
无限循环导致UI停止。您知道更好的实现/设计模式吗?