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)還有什麼我應該改變?