Jak używać Timer w javie (programowanie w androidzie)


(Piesek64) #1

Cześć. Chciałbym wiedzieć jak używać Timer() przy programowaniu na androida. Z Android Developers nie wiele wyczytałem.

Wiem że w kodzie nie dałem  ";" ale w eclipsie są. 

Mam na razie taki kod

(...)
public void obracaj() {
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+10)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+10)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+10)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+10)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+20)
    <tu potrzeba timer>
    iv.setRotation(iv.getRotation()+10)
}
(...)

(Grzelix) #2

OMG. Really? Tak piszesz swój kod. 

Polecam zapoznać się z zasadą DRY.

 

Prawdopodobnie potrzebny ci Thread.sleep() a nie timer.

public void obracaj() {
    for(int i=0;i<24; i++){
          iv.setRotation(iv.getRotation()+(i%5 == 0 ? 10 : 20));
          Thread.sleep(2000);
    }
     iv.setRotation(iv.getRotation()+10);
}

(Frankfurterium) #3

Timer też będzie spoko, o ile załączy się go metodą scheduleAtFixedRate, poda taska (powtarzany wątek) i interwał.