Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Android Mailversand bei "schlechtem Netz" (https://www.delphipraxis.net/198005-android-mailversand-bei-schlechtem-netz.html)

skoschke 26. Sep 2018 06:23

Android Mailversand bei "schlechtem Netz"
 
Hallo,

in meiner App werden Mails erzeugt und versendet.
Nun kommt es aber vor, dass der Anwender "irgendwo im Wald steht" und schlechten bis gar keinen Empfang hat...

Dann läuft die Senderoutine sehr langsam und irgendwann kommt Android und meldet, dass die App nicht mehr reagiert und geschlossen werden soll :-(
Das möchte ich verhindern, nur fehlt mir der richtige Ansatz!

- Das Senden in einen Thread verlagern, bringt das was?
- nicht selbst senden sondern einen Intent lostreten? Was passiert da bei schlechtem Empfang?
- welche anderen Möglichkeiten seht Ihr?

Ciao
Stefan

Der schöne Günther 26. Sep 2018 07:22

AW: Android Mailversand bei "schlechtem Netz"
 
Ich habe noch nie gesehen dass eine Anwendung über selbstgebauten Kram (z.B. Indy-Komponenten) Mails verschickt sondern den Mail-Mechanismus des Betriebssystems nutzt. Wenn es nicht klappt bleibt die Mail halt solange im Postausgang stecken und wird gesendet wenn wieder Empfang da ist, trotzdem muss sich der Entwickler um nichts weiter kümmern.

hoika 26. Sep 2018 07:35

AW: Android Mailversand bei "schlechtem Netz"
 
Hallo,
Zitat:

Ich habe noch nie gesehen dass eine Anwendung über selbstgebauten Kram (z.B. Indy-Komponenten) Mails verschickt
Ich schon, z.B. bei meinem eigenen Programm.

Jasocul 26. Sep 2018 07:45

AW: Android Mailversand bei "schlechtem Netz"
 
[OT]
@Der schöne Günther:
Natürlich gibt es sehr viele derartige Programme. Jedes E-Mail-Programm muss das machen. Outlook gehört übrigens nicht zum Betriebssystem. Ich habe auch ein paar Anwendungen bei denen das erforderlich ist, da zwar der Mail-Server bekannt ist, aber kein Mail-Client auf dem lokalen Rechner ist.
[/OT]

@skoschke:
Spontan folgende Ideen:
1. Du kannst den Versand auch über den Mail-Client auf dem Gerät lösen. Dann kümmert sich dieser darum.
2. Du prüfst die Konnektivität und sendest erst, wenn es geht. Allerdings musst du auf immer noch auf einen Verbindungsabbruch reagieren. Du kannst da zum Beispiel auf ein Time-Out reagieren und über einen Timer einen neuen Versuch starten, falls notwendig.
3. In einen Thread auslagern und bei Verbindungsverlust den Thread pausieren.

Schokohase 26. Sep 2018 08:15

AW: Android Mailversand bei "schlechtem Netz"
 
Ich befürchte der Günther hat im Kontext der Frage geantwortet (Android Betriebssystem) und keine generelle Aussage zu allen Betriebssystem (die die wir schon kennen und die die wir noch nicht kennen) getroffen.

knaeuel 26. Sep 2018 08:33

AW: Android Mailversand bei "schlechtem Netz"
 
brian long hat eine demo veröffentlicht, in der er genau das macht.

Eine der Funktionen der App "Activities" ist das Erzeugen einer mail, um die sich das Betriebssystem kümmert

vielleicht kürzt es ja die Entwicklungszeit ab :)

Blogeintrag:
http://blog.blong.com/2017/11/codera...-directly.html

Sources:
http://blong.com/Downloads/CodeRageX...eAndroidAPI.7z

skoschke 26. Sep 2018 09:05

AW: Android Mailversand bei "schlechtem Netz"
 
Ja, klar, bei Crossplattformentwicklung und App hatte ich vorausgesetzt, dass man erkennt dass es eine Android-App ist ;-)

Und damit sind wir bei Übergabe an das Betriebssystem:
Bei Mailversand per Intent geht das Mailprogramm auf und der Benutzer muss erst "Senden" klicken.
Das ist umständlich und da auch noch 3 Mails in diesem Zusammenhang versendet werden, das Ganze mal drei.

Das möchte ich dem Nutzer nicht zumuten.
Oder gibt es einen Trick, die Mail per Intent wirklich direkt zu versenden die ich noch nicht kenne, ohne Benutzerklicks?

Ciao
Stefan

skoschke 26. Sep 2018 09:07

AW: Android Mailversand bei "schlechtem Netz"
 
Zitat:

In einen Thread auslagern und bei Verbindungsverlust den Thread pausieren.
Kommt Android bei einem Thread auch wenn der "länger nicht reagiert" und will den abschießen wie bei meiner App?

Ciao
Stefan

DeddyH 26. Sep 2018 09:08

AW: Android Mailversand bei "schlechtem Netz"
 
Nein

TurboMagic 28. Sep 2018 18:45

AW: Android Mailversand bei "schlechtem Netz"
 
Zitat:

Zitat von skoschke (Beitrag 1414181)
- Das Senden in einen Thread verlagern, bringt das was?

Wenn man den E-Mail Versand selber machen muss, dann bringt das Auslagern in einen thred etwas. Warum?
Ganz einfach: im anderen Fall läuft alles im Hauptthread der Anwendung ab und wenn der Netzwerkaufruf
blockierend ist (wie m.W. bei Indy) blockiert das den Hauptthread, der auch für die Aktualisierung
des GUI zuständig ist.

Zumindest in Windows würden dann keine Windows Botschaften mehr abgerufen und das Betriebssystem würde
nach einem Timeout diese "Reagiert nicht" Meldung bringen. Ich vermute stark, dass der Mechanismus in
Android ähnlich funktioniert.

Grüße
TurboMagic


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz