Android: how to use a timer

This is my first post.

so I am learning Android and Java (from ActionScript) and I am working on a project where:

I am trying to click ImageView so that ImageView changes images for a second and then reverts to the original image. (this is for a game with a tap)

sounds easy enough, right? I spent the whole day trying to get the standard Java Timer / TimerTask to work .. no luck ..

Is there a better way? I mean, does Android have a special way to do something like this? If not, then what is the ideal way?

Thanks for your help in advance! -g

+3
source share
2 answers

Android, . . () .

, gui Android , . , .

import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

import android.os.Handler;
import android.os.Message;

public class SystemTimerAndroid {
    private final Timer clockTimer;

    private class Task extends TimerTask {
        public void run() {
            timerHandler.sendEmptyMessage(0);
        }
    }

    private final Handler timerHandler = new Handler() {
        public void handleMessage (Message  msg) {
            // runs in context of the main thread
            timerSignal();
        }
    };

    private List<SystemTimerListener> clockListener = new ArrayList<SystemTimerListener>();

    public SystemTimerAndroid() {
        clockTimer = new Timer();
        clockTimer.schedule(new Task(), 1000, 1000);
    }

    private void timerSignal() {
        for(SystemTimerListener listener : clockListener)
            listener.onSystemTimeSignal();      
    }

    public void killTimer() {
        clockTimer.cancel();
    }

    @Override
    public void addListener(SystemTimerListener listener) {
        clockListener.add(listener);        
    }
}
+7

Pipeline ( Looper.prepare()). ​​ . . . :

:
Android Loopers ( )

, .

+1

Source: https://habr.com/ru/post/1759719/


All Articles