Hallo,
das mit dem Runable ist kein Muss !
Ein Thread fuehrt Code parallel zu deinem Aktuellen Code aus.
Du kannst auch einen "wirklichen" Thread verwendet.
Das sieht dann in etwa so aus :
1public class MeinThread extends Thread{
2
3public void run(){
4super.run();
5//mach was in einem anderen Thread
6}
7
8}
Damit kannst du was paralell ausführen....
Aufrufen kannst du das mit :
1public class MeineAndereKlasse{
2 private MeinThread thread;
3 public void openMeinThread(){
4 if (thread == null){
5 thread = new MeinThread();
6}
7thread.start();
8}
9
10
11
12
13}
Ein Handler ist imgrunde ein Interface...
Wenn z.B in unserm Thread beispiel oben der haupprozess informiert werden soll wenn der Thread das Arbeiten beendet hat kannst du das so machen :
1public interface MeinThreadHandler{
2public void meinThreadisFinish();
3...
4}
Der Oben stehende Code ändert sich auf folgendes:
1public class MeinThread extends Thread{
2private MeinThreadHandler handler= null;
3
4public MeinThread(MeinThreadHandler handler){
5this.handler = handler;
6}
7
8public void run(){
9super.run();
10//mach was in einem anderen Thread
11handler.meinThreadisFinish();
12}
13
14}
Damit kannst du was paralell ausführen....
Aufrufen kannst du das mit :
1public class MeineAndereKlasse implements MeinThreadHandler {
2 private MeinThread thread;
3 public void openMeinThread(){
4 if (thread == null){
5 thread = new MeinThread(this);
6}
7thread.start();
8}
9public void meinThreadisFinish(){
10System.out.println("Finish");
11}
12
13}
So in etwa haben den Code jetzt aber nicht getestet sonder direkt hier reingeschrieben.
Das hat übrigens nicht mit Android zu tun sondern ist ein Standart in z.B.: Java.
Somit kannst du weitere infos auch unter "java ist nur eine Insel" herrausfinden.
Als Tipp:
Versteife dich nicht auf Android.
Sondern auch immer schauen was du für Java findest...
Gruß
Fabian
— geändert am 06.03.2014, 12:46:50