wie mache ich eine App im Android Studio ohne dass die Activity angezeigt wird ?

  • Antworten:7
Michael Saxer
  • Forum-Beiträge: 8

24.01.2022, 11:41:52 via Website

Ich habe eine umfangreiche App, welche über JsonObjectRequest auf PHP und MYSQL zugreift, Daten in Spinner ausgibt usw.
Jetzt möchte ich die App restrukturieren und Teile davon in andere Apps auslagern, die ich dann über Intent aufrufe.
Zum Beispiel der PHP-Zugriff geht so so: In der Haupt-App gebe ich in ein EditText-Feld einen Wert ein, der dann über Intent an die Unter-App übergeben wird.
In der Unter-App wird dann mit diesem Wert ein PHP-Programm aufgerufen, ein MYSQL-Zugriff gemacht und die ermittelten Wert an die Unter-App zurückgegeben
Diese gibt dann die Werte mit intent.putExtra an die Haupt-App zurück.
(Ziel ist auch, diese Unter-Apps von mehreren verschiedenen Programmen aus aufzurufen.)
Soweit so gut. Das funktioniert auch alles. Aber:
Für den Sekundenbruchteil in dem die Unter-App arbeitet flackert der Bildschirm kurz.
Meine Frage: wie kann die Unter-App dazu bringen, dass sie nur den Kotlin-Code aufruft, aber die Activity nicht für einen Sekundenbruchteil anzeigt ?
Ich habe eine Bitte - wie beim Günther Jauch: bitte nur die antworten die es wirklich wissen.
Ich habe schon alles mögliche ausprobiert und alles mögliche bei Google gelesen, aber nichts funktioniert.
Wenns einer weiß, wäre ich sehr dankbar.
Viele Grüße

Kommentieren
Jokel
  • Forum-Beiträge: 1.530

25.01.2022, 06:07:42 via Website

Wenn du keine gui brauchst würde ich einen Service benutzen.
Die Activity der zweite App kann ja einen Service starten. DIesen rufst du auf der dann dir das Ergebnis zurück gibt.

— geändert am 25.01.2022, 06:09:29

Hilfreich?
Pascal P.
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

25.01.2022, 06:44:02 via Website

Möglich sollte auch sein bei der Activity die du startest erst gar kein Layout zu laden und anzuzeigen.
Code ausführen und sich einfach wider beenden. Du willst ja auch keine GUI mehr haben.

Das kannst du aber auch in der App machen von der aus du steuerst.

Wozu dafür eine neue App. Neue Activity oder Service ja?

Hilfreich?
Pascal P.
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

25.01.2022, 18:28:23 via Website

Ich bin hier auch der Meinung das du mit undergeotnerte App nicht eine echte andere App meinst sondern eine weitere Activity.

Eine andere App heißt das es ein anderes neues Projekt mit anderen Namen anderen icon Manifest.... Ist.

Wenn es eine andere App wäre müßte du die mit einem implziten Intents starten. Was du sicherlich nicht tust.

Also ich denke du hast ein Projekt in dem eine MainActivity ist und weitere Bildschirmseiten oder auch Activity genannt.
Die du mit einem Explizite Intent startest.

Die Begrifflichkeiten App und Activity soltest du etwas auseinander halten und nicht gleich setzen.

Hilfreich?
Kommentieren
Michael Saxer
  • Forum-Beiträge: 8

27.01.2022, 07:14:35 via Website

hallo und vielen Dank erstmal für die Antworten.
Mit dem "Service" habe ich mich noch gar nicht befasst bisher. Ich ahne aber dass das die Lösung meines Problems ist.
Das heisst, ich rufe dann (über Intent) keine Activity auf, sondern einen Service ?
Und im Android Studio gibt es ja "Datei, New, Service, Service" und "Datei, New, Service, IntentService".
Muss ich dann IntentService nehmen ?
und schreibe da meinen Kotlincode rein den ich jetzt fälschlicherweise in eine separate Activity geschrieben habe ?
Kann ich dann diesen Service wie gehabt über einen Intent aufrufen ?
Gibt es irgendwo im Netz einen Beispielcode ?
Vielen Dank und viele Grüße;
Michael

Hilfreich?
Kommentieren
Hilfreich?
Pascal P.
Kommentieren
Michael Saxer
  • Forum-Beiträge: 8

27.01.2022, 12:32:53 via Website

...hab ich mir jetzt soweit angeguckt aber was ich vermisse ist eine Anleitung/Beispiel wir man Daten zwischen Activity und Service übergibt:
1. die Activity übergibt einen Wert an den Service
2. Der Service empfängt diesen Wert, macht eine Verarbeitung (in meinem Fall ein PHP-Programm aufrufen) und übergibt am Ende der Verarbeitung einen Ergebniswert an die Activity zurück.
3. Die Activity zeigt diesen Wert an.
Wie geht das ?

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

27.01.2022, 14:32:58 via Website

Kommt auf dem Service an den du benutzt.

Parameter übergeben wie gehabt mit dem Intent und PutExtra.
Empfangen von Daten dazu brauchst du einen Receiver.

https://www.journaldev.com/20743/android-intentservice-resultreceiver
https://www.mysamplecode.com/2011/10/android-intentservice-example-using.html
https://programmerwiki.com/article/7490256011/

— geändert am 27.01.2022, 14:33:52

Hilfreich?
Pascal P.
Kommentieren