Aplicativo Android para alterar o papel de parede em intervalos regulares usando o Timer

Desejo criar um aplicativo que altere o papel de parede do dispositivo Android em intervalos fixos, digamos a cada hora. Atualmente no meu código, inicio um serviço e estou usando um objeto Timer. O objeto Timer seria chamado a intervalos regulares e mudaria o papel de pared

Este é o código que estou usando atualmente. O papel de parede é alterado apenas uma vez e não depois disso. Por favor, deixe-me saber o que devo fazer?

public class Wallpaper extends Service {

    Timer mytimer;
    int interval=60000;
    Drawable drawable;
    WallpaperManager wpm;
    int prev=1;

    @Override
    public void onCreate() {
        super.onCreate();
        mytimer=new Timer();
        wpm=WallpaperManager.getInstance(Wallpaper.this);
    }



    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        mytimer.schedule(new TimerTask() {
            @Override
            public void run() {

                if(prev==1){
                    drawable = getResources().getDrawable(R.drawable.two);
                    prev=2;
                }
                else if(prev==2){
                    drawable = getResources().getDrawable(R.drawable.three);
                    prev=3;
                }
                else{
                    drawable = getResources().getDrawable(R.drawable.one);
                    prev=1;
                }


                Bitmap wallpaper=((BitmapDrawable)drawable).getBitmap();

                try {
                    wpm.setBitmap(wallpaper);

                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        }, interval);

        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }
}

Also, preciso usar um AlarmManager ou Handler para conseguir isso? Eu sou muito novo no Android e um pouco confuso.

questionAnswers(4)

yourAnswerToTheQuestion