obiwan1973: Mit Handykamera Bild knipsen und per HTML/JS/PHP hochladen

Hallo zusammen,

ich entwickle u.a. Webseiten für Smart Phones.

Z.Zt. habe ich mit vier Geräten zu tun, die RAM-mäßig etwas schwach auf der Brust sind.

Auf meiner Webseite habe ich ein ganz normales HTML-Input-File-Control zum Auswählen einer existierenden Fotodatei oder der Handykamera.

Wenn ich dann ein Bild geknipst habe oder eine Fotodatei von der SD-Karte ausgewählt habe, wird der RAM so knapp, dass Android den Browser (Firefox) schließt, um RAM frei zu machen. Anschließend startet Android den Browser wieder und der lädt dann die Seite neu.

Das Problem ist bekannt und dokumentiert:

http://stackoverflow.com/questions/14274727/android-browser-refreshes-page-after-selecting-file-via-input-element

http://code.google.com/p/android/issues/detail?id=53088

https://github.com/kostysh/File-uploading-component-for-Sencha-Touch/issues/5

Was tun? Hat jemand eine Idee, wie ich das Problem lösen kann?

Hier noch einmal das Ziel: Ich möchte aus dem Firefox heraus ein Foto knipsen und das Bild per HTML/JS/PHP hochladen - ohne die Seite zu verlassen.

Gruß

Tommy

  1. Tach!

    Wenn ich dann ein Bild geknipst habe oder eine Fotodatei von der SD-Karte ausgewählt habe, wird der RAM so knapp, dass Android den Browser (Firefox) schließt, um RAM frei zu machen. Anschließend startet Android den Browser wieder und der lädt dann die Seite neu.

    Ich kann dir keine befriedigende Antwort geben. Es gibt kein Verfahren, um RAM aufzublasen. Wenn der Speicher knapp ist, kann man entweder nicht benötigte Teile auslagern oder man schließt nicht benötigte Programme. Android geht den letzteren Weg. Swap-Speicher ist zwar im darunter liegenden Linux möglich aber nicht vorgesehen. Er lässt sich einrichten, wenn man tief ins System eingreifen will (Rooten erforderlich).

    Android hat ein App-Lifecycle-Management. Das teilt aber lediglich der Anwendung mit, dass sie gerade pausiert oder gestoppt oder komplett beendet werden soll. Die App kann sich nicht dagegen wehren, höchstens noch ein wenig aufräumen.

    Das Problem ist bekannt und dokumentiert:

    Aber nicht lösbar, wenn 08/15-Anwender das Programm ohne Eingriffe ins Gerät laufen lassen sollen. Du kannst dir höchstens eine Strategie ausdenken, wie du am gescheitesten mit diesen Lifecycle-Aktivitäten umgehen kannst - wenn du selbst eine App erstellst. Allerdings wirst du schlechte Karten haben, den Browser zu beeinflussen - oder das Betriebssystem so zu beeinflussen, dass es den Browser in Ruhe lässt.

    dedlfix.

    1. Hallo dedlfix,

      ich verstehe nur nicht, wieso die Kamera bzw. der Dateiauswahl-Dialog soviel RAM benötigen. Das ist doch Irrsinn.

      Gruß

      Thomas

    2. Hallo!

      Android hat ein App-Lifecycle-Management. Das teilt aber lediglich der Anwendung mit, dass sie gerade pausiert oder gestoppt oder komplett beendet werden soll. Die App kann sich nicht dagegen wehren, höchstens noch ein wenig aufräumen.

      Du verwechselst App und Activity. Apps können einen Service starten der im Hintergrund, unabhängig vom Lifecycle irgend einer Activity, tut was auch immer er tun soll.

      Grüße, Matze

      1. Tach!

        Android hat ein App-Lifecycle-Management. Das teilt aber lediglich der Anwendung mit, dass sie gerade pausiert oder gestoppt oder komplett beendet werden soll. Die App kann sich nicht dagegen wehren, höchstens noch ein wenig aufräumen.
        Du verwechselst App und Activity. Apps können einen Service starten der im Hintergrund, unabhängig vom Lifecycle irgend einer Activity, tut was auch immer er tun soll.

        Stimmt, es war der Activity Lifecycle. Aber auch Apps werden beendet, wenn der Speicher knapp wird. Doch was rechtfertigt, dass ein 08/15-Browser ständig im Hintergrund laufen soll, noch dazu als Service?

        dedlfix.

        1. Hallo!

          Doch was rechtfertigt, dass ein 08/15-Browser ständig im Hintergrund laufen soll, noch dazu als Service?

          Nichts. Das bezog sich auf dein Argument eine eigene App zu entwickeln. Und wenn man das schon tut, kann man auch auf den Browser verzichten.

          Grüße, Matze