Hallo.
Ich habe mein erstes Midlet geschrieben. Es ist ein Programm, das eine CSV-Datei aus dem Dateisystem meines Sony Ericsson Telefons einliest, mit Daten aus einem Form (mit TextFields, ChoiceGroups, etc.) ergänzt und eine neue Version der Datei schreibt. Das Sony Ericsson Telefon fragt bei jeder Schreiben/Lesen-Aktion (FileConnector) nach Schreib- und Leseerlaubnis. Wird der Zugriff durch den Benutzer verweigert, kann ich ein Alert ausgeben, soweit so gut. Aber da die weitere Ausführung des Programms keinen Sinn mehr macht, möchte ich das sich das Programm beendet. Nun möchte ich aber, dass das Programm mit einer deutlich sichtbaren Fehlermeldung (Alert) auf das Problem hinweist und sich danach beendet. Leider bekomme ich das nicht hin.
Heir ist die Dateilesen-Methode, die zu beginn des Progs als eigener Thread aufgerufen wird:
Mein Versuch war, folgendes im catch-Block zu platzieren (nach der showError()-Sache, die ein Alert zeigt)
Leider stirbt das Midlet dann umgehend, die Meldung ist nicht zu sehen.
Wäre schön, wenn jemand helfen könnte. Danke schonmal fürs lesen.
Ich habe mein erstes Midlet geschrieben. Es ist ein Programm, das eine CSV-Datei aus dem Dateisystem meines Sony Ericsson Telefons einliest, mit Daten aus einem Form (mit TextFields, ChoiceGroups, etc.) ergänzt und eine neue Version der Datei schreibt. Das Sony Ericsson Telefon fragt bei jeder Schreiben/Lesen-Aktion (FileConnector) nach Schreib- und Leseerlaubnis. Wird der Zugriff durch den Benutzer verweigert, kann ich ein Alert ausgeben, soweit so gut. Aber da die weitere Ausführung des Programms keinen Sinn mehr macht, möchte ich das sich das Programm beendet. Nun möchte ich aber, dass das Programm mit einer deutlich sichtbaren Fehlermeldung (Alert) auf das Problem hinweist und sich danach beendet. Leider bekomme ich das nicht hin.
Heir ist die Dateilesen-Methode, die zu beginn des Progs als eigener Thread aufgerufen wird:
Code:
String readFromFile(){
try{
FileConnection fconn = (FileConnection)Connector.open(URL, Connector.READ_WRITE, true);
if (!fconn.exists()){
out("die Datei existiert nicht: erzeuge...");
//da keine Datei existiert, erzeuge eine
fconn.create();
OutputStreamWriter fosw = new OutputStreamWriter(fconn.openOutputStream());
//Schreibe die Kopfzeile in die neue Datei
fosw.write(head, 0, head.length());
fosw.close();
}
InputStream fis = fconn.openInputStream();
byte[] b = new byte[8192];
int length = fis.read(b, 0, 8192);
if (length == 8192) throw new Exception("max. Dateilänge erreicht!");
fis.close();
String oldData = new String(b, 0, length);
fconn.close();
if (oldData.length() > head.length()) fileHasData = true;
return oldData;
}
catch(Exception e){
showError(e.getMessage());
return "FAIL";
}
}//readFromFile()
Mein Versuch war, folgendes im catch-Block zu platzieren (nach der showError()-Sache, die ein Alert zeigt)
Code:
destroyApp(false);
notifyDestroyed();
Wäre schön, wenn jemand helfen könnte. Danke schonmal fürs lesen.