Pascal P.
- Admin
- Forum-Beiträge: 11.286
23.03.2013, 16:45:00 via Website
23.03.2013 16:45:00 via Website
Hallo,
ich habe folgendes Problem.
Ich habe mehrere Methoden indenen einzelne Threads ausgeführt werden.
Bei jedem aufruf wird ein neuer Thread aufgerufen, dinem dann der Code ausgeführt wird.
Insgesamt gibt es eine TCP Connection.
Nun will ich nicht für jeden Thread einen Handler machen.
Und ich will in einen Handler noch andere Funktionen einbauen, sodass ich aus einem Thread heraus einen´Handler habe und mit dem dann einen Toast erstellen oder Steuerelemente ändern kann.
Ich hatte mir das irgendwie so gedacht:
Geht das mit dem Hinzufügen von Methoden in einen Handler?
Vielen Dank im Voraus
ich habe folgendes Problem.
Ich habe mehrere Methoden indenen einzelne Threads ausgeführt werden.
Bei jedem aufruf wird ein neuer Thread aufgerufen, dinem dann der Code ausgeführt wird.
Insgesamt gibt es eine TCP Connection.
Nun will ich nicht für jeden Thread einen Handler machen.
Und ich will in einen Handler noch andere Funktionen einbauen, sodass ich aus einem Thread heraus einen´Handler habe und mit dem dann einen Toast erstellen oder Steuerelemente ändern kann.
Ich hatte mir das irgendwie so gedacht:
1private Handler handler = new Handler() {
2 @Override
3
4 public void handleMessage(Message msg) {
5
6
7 }
8
9 public void makeToast(String msg) //Neue Funkton sollte mit handler.makeToast("Hallo"); aufgerufen werden. Es funktioniert aber nicht.
10 {
11 Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
12
13 }
14
15
16 };
17
18
19
20 public void getMessage() // Warte auf Antwort vom Server !!!Hinweis: Diese Funktion Funktioniert nur, wenn schon eine anfrage an den Server gesendet wurde und sie noch nicht empfangen wurde!
21 {
22
23 Runnable r = new Runnable()
24 {
25
26 public void run() {
27
28
29
30
31 try {
32handler.makeToast(empfangenerText):
33
34 tcp.SetText(finalText); // Hier soll aus einem Thread ein TextView geändert werden, das soll auch der hanler machen
35handler.setText(TextView tv,String Text)
36 }
37 catch (IOException e) {
38 // TODO Auto-generated catch block
39 e.printStackTrace();
40 } } };
41
42
43
44 Thread th = new Thread(r);
45 th.start();
46
47
48 }
2 @Override
3
4 public void handleMessage(Message msg) {
5
6
7 }
8
9 public void makeToast(String msg) //Neue Funkton sollte mit handler.makeToast("Hallo"); aufgerufen werden. Es funktioniert aber nicht.
10 {
11 Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
12
13 }
14
15
16 };
17
18
19
20 public void getMessage() // Warte auf Antwort vom Server !!!Hinweis: Diese Funktion Funktioniert nur, wenn schon eine anfrage an den Server gesendet wurde und sie noch nicht empfangen wurde!
21 {
22
23 Runnable r = new Runnable()
24 {
25
26 public void run() {
27
28
29
30
31 try {
32handler.makeToast(empfangenerText):
33
34 tcp.SetText(finalText); // Hier soll aus einem Thread ein TextView geändert werden, das soll auch der hanler machen
35handler.setText(TextView tv,String Text)
36 }
37 catch (IOException e) {
38 // TODO Auto-generated catch block
39 e.printStackTrace();
40 } } };
41
42
43
44 Thread th = new Thread(r);
45 th.start();
46
47
48 }
Geht das mit dem Hinzufügen von Methoden in einen Handler?
Vielen Dank im Voraus
LG Pascal //It's not a bug, it's a feature.
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.