カウントダウンクロックのアニメーションがあるフラグメントがあります。私は、ユーザーからの介入なしにフラグメントがロードされるとすぐにアニメーションを開始したい。私は今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)私は変更する必要がありますか?