TimerTask führt manche Befehle aus und manche nicht

  • Antworten:3
Lucas
  • Forum-Beiträge: 717

02.03.2014, 00:01:35 via Website

Hey Leute,

ich habe in meinem AndroidProjekt folgenden Code:

1for (String aSlash : slash){
2 if(aSlash.contains("status_message")){
3 String[] sm = aSlash.split(">");
4 Toaster(sm[1], Toast.LENGTH_SHORT);
5 status.setText("Status: "+ sm[1]);
6 }}

Nun habe ich aber das Problem, dass der TimerTask mir zwar den Toast anzeigt (auch mit der richtigen Nachricht) aber in dem TextView-Feld passiert nichts.
Also der CodeAuschnitt hier stammt aus einer anderen Klasse, welche durch einen TimerTask aufgerufen wird.

Das gleiche Problem habe ich an anderen Stellen im Quellcode übrigens auch mit CheckBoxes.
Ich hoffe ihr könnt mir helfen und mir sagen, wieso sich an dem TextView nichts tut.

MfG
Lucas

— geändert am 02.03.2014, 00:01:56

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

02.03.2014, 00:06:00 via App

Wie sieht denn der Timer code aus
Habe gerade keine Glaskugel :)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Lucas
  • Forum-Beiträge: 717

02.03.2014, 00:10:57 via Website

Timer Task:

1timer = new Timer();
2 timer.schedule(new TimerTask() {
3 @Override
4 public void run() {
5 runOnUiThread(new Runnable() {
6 public void run(){
7 st.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
8 }
9 });
10 }
11 }, 5000, 5000);

Aufgerufen wird dadurch:

1class MyJavaScriptInterface
2 {
3
4 @JavascriptInterface
5 @SuppressWarnings("unused")
6 public void processHTML(String html){
7
8
9 String replaced = html.replace("<br>", "\n");
10 String[] slash = html.split("<");
11
12 for (String aSlash : slash){
13 if(aSlash.contains("status_message")){
14 String[] sm = aSlash.split(">");
15 Toaster(sm[1], Toast.LENGTH_SHORT);
16 status.setText("Status: "+ sm[1]);
17 }}}

— geändert am 02.03.2014, 00:13:03

Antworten
Lucas
  • Forum-Beiträge: 717

02.03.2014, 00:28:10 via Website

Ahh ich hab den Fehler gefunden.

Ich musste die eigentliche Anfrage auch noch in einen UIThread packen :)

Antworten