Dialog Cancelable, trotz "setCancelable(false)"

  • 4 Antworten
  • Letztes Antwortdatum
C

coolz3ro

Neues Mitglied
0
Hallo!

Ich habe einen Dialog, der nicht durch das Drücken von Tasten beendet werden soll, sondern nur durch die Buttons, die im Dialog enthalten sind.
Dafür habe ich folgenden Dialog geschrieben mit setCancelable(false):

Code:
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.dialog);
dialog.setCancelable(false);
dialog.setTitle("Dialog");

//Einige Dinge, die im Dialog stehen sollen

dialog.show();
Soweit, so gut. Auf dem Virtual Device und auf meinem Handy funktioniert soweit auch alles. Nun habe ich aber noch weitere Handymodelle getestet. Dabei ist mir aufgefallen, dass diese den Quellcode teilweise anders interpretieren! :ohmy: Das war für mich erstmal eine Überraschung, da ich mich noch nicht so lange mit Android beschäftige, außerdem war es aber auch schlecht für mich, da sich der Dialog auf einem Samsung Handy (Android 2.3.6) bei langem Drücken der Menütaste beendet!! (Durch den Zurückbutton hingegen nicht - hier ist also alles okay.)

Meine Frage nun: Wie kann ich dieses unerwünschte Ereignis verhindern?

Außerdem aus reinem Interesse: Warum ist das so, dass verschiedene Handymodelle den Quellcode anders interpretieren? Es wird warscheinlich an der Androidversion liegen, aber macht das wirklich Sinn, dass man soetwas wie einen Dialog, der ja recht oft gebraucht wird und auch schon seit Version 1.x verfügbar ist, bei verschiedenen Androidversionen anders interpretiert?

Vielen Dank für Antworten =)
 
Long Press von nem HardwareButton ist meist eine Entwickler-Option, die den kompletten Prozess (glaub ich zumindest ;) ) killt. Vielleicht trifft das ja auch hier zu.

Code verschieden 'interpretiert' wird da nur gemäß der Version + vermutlich halt auch gemäß den Hardware Voraussetzungen der Geräte - einfachstes Bsp. Hardware-Buttons (Suchen-Taste wie sie bei den älteren Geräten noch vorhanden sind).

Greets,
Max
 
Zuletzt bearbeitet:
Was meinst du mit "den kompletten Prozess"? Der Dialog ist ja eigentlich auch nichts, das gerade "ausgeführt" wird bzw im Prozess ist, sondern er wird einmal erzeugt und ist dann da. Warum er dann gekillt werden soll weiß ich nicht... warum wird z.B. ein Countdown dann nicht gekillt?

Ideen das zu beheben?
 
Naja, sofern dieser LongPress eben diese Entwickler-Option aufrufen sollte, wird natürlich nicht der Dialog geschlossen sondern der komplette Prozess (der ja auch den Dialog hostet) gekillt.

Ich weiß nicht genau was du mit Countdown meinst - aber vermutlich läuft das als Service.

Greets,
Max
 
Und gibt es dafür nun eine Lösung?
 
Zuletzt bearbeitet:
Zurück
Oben Unten