Seite 1 von 1

Zwei getrennte Apps im Wechsel öffen

Verfasst: Dienstag 12. März 2024, 22:04
von DMD-OL
Hey Leute
Kann man in Kivy durch jeweiligem Buttonklick zwischen zwei Apps hin- und herwecheln.
Dabei soll die erste App geschlossen und die zweite App mit anderer physikalischer Größe (Itemgröße) gestartet werden. Dann wieder die erste App im Fullscreen, usw.

Code: Alles auswählen

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout


class FirstApp(App):
    def build(self):
        layout = BoxLayout(orientation='vertical')
        button = Button(text='Schließen und Zweite App starten')
        button.bind(on_press=self.switch_to_second_app)
        layout.add_widget(button)
        return layout

    def switch_to_second_app(self, instance):
        self.stop()  # Schließt die erste App
        SecondApp().run()  # Startet die zweite App


class SecondApp(App):
    def build(self):
        layout = BoxLayout(orientation='vertical')
        button = Button(text='Zurück zur Ersten App')
        button.bind(on_press=self.switch_to_first_app)
        layout.add_widget(button)
        return layout

    def switch_to_first_app(self, instance):
        self.stop()  # Schließt die zweite App
        FirstApp().run()  # Startet die erste App


if __name__ == '__main__':
    FirstApp().run()
Das funktioniert so nicht, weil man eine App nicht direkt im selben Mainloop wieder öffnen kann.
Aber irgendwie soll das mit der on_pause-Funktion funktionieren?

Re: Zwei getrennte Apps im Wechsel öffen

Verfasst: Donnerstag 14. März 2024, 20:30
von Sirius3
Es darf nur eine App geben. Wie bei allen GUI-Frameworks. Will man mehrere Bildschirme haben, benutzt man einen Screenmanager: https://kivy.org/doc/stable/api-kivy.ui ... nager.html

Re: Zwei getrennte Apps im Wechsel öffen

Verfasst: Freitag 15. März 2024, 08:47
von noisefloor
Hallo,

abgesehen davon will man es doch auch gar nicht das App $FOO automagisch App $BAR schließt und umgekehrt, weil App Öffnen und Schließen Sache und Endscheidung des Benutzers ist. Und AFAIK laufen Apps auf dem Smartphone zumindest in Android und iOS in einem eigenen Kontext (Sandbox), so dass die die anderen Apps sowieso nicht sehen. Auf Desktoprechner braucht man AFAIK dafür auch den richtigen Rechtekontext bzw. erhöhe Rechte. Was ja auch gut ist, damit z.B. Chrome bei Öffnen nicht ungefragt eine laufenden Instanz von Firefox schließen kann.

Was geht ist, dass App $FOO App $BAR auf Rückfrage öffnet. Meine Banking-App bietet bei einer Transaktions z.B. an, die Authentifizerungs-App zu öffnen. Die Rückkehr von der Auth-App zur Banking App erfolgt aber durch mich, nicht automatisch.

Gruß, noisefloor

Re: Zwei getrennte Apps im Wechsel öffen

Verfasst: Freitag 10. Mai 2024, 11:19
von DMD-OL
Ich habe das Problem, dass ich GPS-Daten nonstop empfangen möchte, heißt auch dann, wenn die App geschlossen wird. Auf Android-Geräten wird aber beim Schließen der App jedesmal sofort die Standortberechtigung entzogen. Ich empfange zwar GPS-Daten, die ich dann verarbeiten kann, aber nur solange die App "läuft".
Schließe ich die App, empfange ich keine Daten mehr.
Daher versuche ich die App sozusagen umzuschalten. Von Fullscreen auf Itemgröße. Problem: Das Umschalten funktioniert zwar in Kivy, aber es bleibt der Fullscreen im Hintergrund vorhanden. Den jetzt transparent zu machen, ist auch blöd, da ich gern GPS-Daten empfangen möchte, ohne die App geöffnet zu haben. -> Ich möchte auf meinem eigenen Handy über GPS meine Arbeitszeit automatisch aufnehmen.