Android - Threads
Nebenläufigkeit...
Links
Allgemein
Threads über das Interface Runnable
Der Thread
Damit ein Thread weiß was er tun soll braucht er Befehlsfolgen. Diese bekommt er mit einem Runnable Objekt.
Der Thread bekommt dazu eine Referenz auf ein Runnable Objekt. So weiß er für welches runnable er zuständig ist. Dann Ruft man die Methode start() auf. Der Thread holt sich dann das Runnable und started dort die Methode run() in einer eigenen Ablaufumgebung - dem Thread.
Das Runnable
Das Runnable enthält eine Methode run() die ausgeführt wird, wenn es durch den Eltern Thread gestartet wird.
Beispiel aus dem Galileo Link s.o.
public class DateCommand implements Runnable
{
@Override public void run()
{
for ( int i = 0; i < 20; i++ )
System.out.println( new java.util.Date() );
}
}
class CounterCommand implements Runnable
{
@Override public void run()
{
for ( int i = 0; i < 20; i++ )
System.out.println( i );
}
}
Thread t1 = new Thread( new DateCommand() );
t1.start();
Thread t2 = new Thread( new CounterCommand() );
t2.start();
Bei der Ausgabe erkennt man das die beiden Threads gleichzeitig laufen.
Läuft der Thread schon, so löst ein zweiter Aufruf der start()-Methode eine IllegalThreadStateException aus.
Threads in Android Activities
In Android gibt es verschiedene Standardmethoden wie man Threads einbaut.
Z.B. in der onCreate() Methode
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
// mach was
}
});
thread.start();