Ich erstelle eine Live Wallpaper App. Ich möchte, dass in dieser App nach einem bestimmten Intervall ein Filmobjekt seinen Rahmen auf surfaceHolder
canvas
zeichnet.Wie kann ich TimerTask verwenden, um kontinuierlich zu laufen?
Mein Code ist
public void startTimer() {
timer = new Timer();
initializeTimerTask();
}
private void initializeTimerTask() {
timerTask = new TimerTask() {@
Override
public void run() {
Canvas canvas = holder.lockCanvas();
canvas.save();
// Adjust size and position so that
// the image looks good on your screen
canvas.scale(1f, 1f);
movie.draw(canvas, -500, 0);
canvas.restore();
holder.unlockCanvasAndPost(canvas);
movie.setTime((int)(System.currentTimeMillis() % movie.duration()));
}
};
timer.schedule(timerTask, 33);
}
Aber wenn ich diese App nur ein Rahmen ausgeführt wird, auf der Oberfläche gezeigt, und es wird nicht im Laufe der Zeit ändern.
Was ist der Fehler in meinem Code? Wie kann ich sehen, dass sich die Oberfläche im Laufe der Zeit verändert?