0
我得到了一个片段,其中有倒计时时钟的动画。我想在片段加载后立即开始动画,而不需要用户的任何干预。碎片加载后立即启动动画的正确方法
我现在干的就是调用下面的方法onCreateView
:
private void startCountDownAnimation()
{
final int totalSeconds = secondsToStart + minutesToStart * 60;
mRingProgressBar.setTotalSeconds(totalSeconds);
HandlerThread handlerThread = new HandlerThread("countdown");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
handler.post(new Runnable()
{
@Override
public void run()
{
timer.scheduleAtFixedRate(new TimerTask()
{
//int secondsPassed = 0;
int secondsLeft = totalSeconds;
@Override
public void run()
{
if(secondsLeft == 0)
{
//fragment transaction
timer.cancel();
}
//final int currentProgress = Math.round(((float) secondsPassed)/((float) totalSeconds)*100f);
getActivity().runOnUiThread(new Runnable()
{
@Override
public void run()
{
mRingProgressBar.setSeconds(secondsLeft);
secondsLeft--;
//secondsPassed++;
}
});
}
}, 0, 1000);
}
});
}
这似乎是工作,包括当应用程序转到后台。
我只是想知道我在做什么是处理动画正确的方法:
1)是onCreate
的正确位置调用此方法?
2)我可以有一些问题的应用程序去背景或如果屏幕变黑一段时间后?
3)还有什么我应该改变?