run braucht man nicht synchronized setzen. Viemehr musst du aufpassen das variablen und Klassen die im thread benutzt werden Nebenläufigkeit unterstützen. Über das Thema gibt es ganze Bücher
Kleiner Tip am rande:
Es ist grundsätzlich immer falsch folgendes zu schreiben:
private boolean isPaused = false;
und dann in der #run Methode auszuwerten!
Es leuchtet evtl nicht direkt ein (weil es meist auch klappt, aber eben nicht zu 100%).
Wenn dann muss ein boolean als volatile deklariert werden, also:
private volatile boolean isPaused = false;
Der schreibende Thread (oft UI Thread bei Android) und der der die #run ausführt werden jetzt immer auch den korrekten wert sehen. AtomicBoolean ist eine Alternative dazu ...
hth,
mac
Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.