Cancel-Button oder Timer für ProgressDialog?

  • Antworten:2
MB Power
  • Forum-Beiträge: 28

02.01.2011, 20:37:59 via Website

Ist es möglich dem folgendem Prozess Dialog einen Cancel-Button oder einen Timeout mitzugeben?
Ich benötige den ProgressDialog um Daten aus einer MySQL-Datenbank zu lesen, aber wenn es Probleme mit der Internetverbindung gibt, dann beendet sich der Dialog nicht und ich kann ihn auch nicht abbrechen. Ob Internetverbindung vorhanden ist prüfe ich vorher schon, aber das ist leider nicht ausreichend.

Wäre super, wenn mir jemand helfen könnte.

1public void testProgressDialog()
2{
3 String info = "This process might take a few seconds.";
4 myProgressDialog = ProgressDialog.show(tritowerhighscore.this,"Please wait...", info, true);
5
6 new Thread() {
7 public void run() {
8 try{
9 getData();
10 mHandler.post(showUpdate);
11
12 } catch (Exception e) {
13 Log.e("testProgressDialog", "Error testProgressDialog", e);
14 }
15 myProgressDialog.dismiss();
16 }
17 }.start();
18}
19
20private Runnable showUpdate = new Runnable(){
21 public void run(){
22 //finish();
23 testFinish();
24 }
25};

— geändert am 02.01.2011, 20:39:14

Antworten
Gelöschter Account
  • Forum-Beiträge: 107

02.01.2011, 23:03:30 via Website

Du müsstest mit der Exception, die dann fliegt im catch-Case den Dialog schließen. Allerdings: Ich kenne jetzt die die Implementierung des Netzwerk-Stacks in der Dalvik-VM nicht, bin noch nicht lange genug bei, aber in allen anderen Implementierungen blockiert eine Netzwerkverbindung den Thread, der sie geöffnet hat, bis sie durch eine erfolgreiche Übertragung oder einen Fehler beendet wird. Du wirst also imho auf die Exception warten müssen. Andere Möglichkeit: Du entkoppelst den Übertragungsthread vom Dialog und beendest im Fehlerfall den Dialog durch dialog.dismiss(); und lässt im Hintergrund den Transfer-Thread sterben, wenn der Timeout durch ist. Timings bekommst du durch "normales" Thread-Handling hin. (o.wait(time) und o.notify())

— geändert am 02.01.2011, 23:06:37

Seid nett zueinander: AndroidPIT-Regeln ;)

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

03.01.2011, 08:01:16 via App

stichwort asynctask

swordiApps Blog - Website

Antworten