/ / Java Thread Signaling gibt keine Ausführung an Schleife zurück - Java, Android, Multithreading

Java Thread Signalling gibt die Ausführung nicht an loop zurück - Java, Android, Multithreading

Ich habe eine Klasse, die in einem Tread instanziiert und gestartet wird. Der Code lautet wie folgt:

private class StartCycle implements Runnable {

@Override
public void run() {
...
while(pomodoroLeft > 0) {
...
synchronized(runnable){
try{
runnable.wait();
} catch(InterruptedException e){}
}
runTime = shortLength * ONE_MINUTE; //These statements are not getting
runnable = new Clock();             //executed
runnable.run();


}
}


}

Die Uhrenklasse mit laufendem Instanznamen ist wie folgt:

private class Clock implements Runnable
{

public void run() {
...
synchronized (this) {
runnable.notifyAll();
}
//here goes the alarm.
}


}
}

Aus irgendeinem Grund kehrt die Ausführung des ersten Threads nicht zu seinem Pfad und seinen Anweisungen zurück. Habe ich die Benachrichtigung versaut? Oder gibt es einen anderen Grund dafür?

Antworten:

0 für die Antwort № 1

Wenn Sie einen Alarm / Timer erstellen, verwenden Sie einfach den in AlarmManager integrierten Android

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, (1000 * 60), (1000 * 60), yourPendingIntent);

Am wahrscheinlichsten, wenn Sie Ihre eigene erstellen, verbraucht Ihre App den Großteil der CPU, was zu einem Lowbat Ihres Benutzers führen wird

Alarm Manager API