0

I arbeiten muß, eine Aktivität, die ein Navigationsmenü bis 3 Fragmente enthält:Wie mit Fragmenten mit Bluetooth

1) Home (mit Kanalwechsel und die Lautstärkeänderungstasten) 2) Bluetooth-Verbindung (die mit einem externen Verbindung Bluetooth-Gerät) 3) Einstellungen (wo die Suchleiste die Squelch des Bluetooth-Geräts ändern)

Wenn die App geöffnet wird, funktioniert die ganze Navigation Schaltfläche in Bezug auf das Öffnen der einzelnen Fragmente.

Nachdem ich zum Bluetooth-Verbindungsfragment gegangen bin, das mich zu den Einstellungen des Telefons nimmt, um die Bluetooth-Verbindung zu dem externen Bluetooth-Gerät einzurichten, wird die App Sie zum Home-Fragment bringen.

Alle Schaltflächen (Kanal- und Lautstärkeänderungstasten) im Home-Fragment funktionieren in Bezug auf die Interaktion mit dem externen Gerät (die Lichter blinken, um die Interaktion anzuzeigen). Nach der Interaktion mit den Schaltflächen funktionieren die Navigationsschaltflächen zu den anderen Fragmenten (Einstellungsfragment und Bluetooth-Fragment) jedoch nicht (die Fragmente werden nicht angezeigt/aufgezogen). Der andere Fehler besteht darin, dass wenn ich die App öffne und zum Einstellungsfragment gehe, keine der Schaltflächen (Kanal- und Lautstärkeänderungstasten, die Lichter im externen Bluetooth-Gerät) im Home-Fragment funktionieren nicht arbeiten.

UPDATE

Ok, also eine interessante Beobachtung war ich festgestellt, dass die Squelch-Taste in der 3) Einstellungen Fragment funktioniert auch, wenn ich nie zunächst auf die 1) Home Fragment ging und ging direkt in die Einstellungsfragment.

Ich experimentierte mit einem Prototyp, den ich mit Activity anstelle von Fragment erstellte, und zeigte ein ähnliches Verhalten hinsichtlich der Unterbrechung der Bluetooth-Verbindung, wenn ich zwischen Aktivitäten wechselte, ohne die Verbindung ordnungsgemäß zu schließen.

Das führt mich zu der Annahme, dass, wenn ich zwischen Fragmenten umschalte, die Verbindung nicht richtig schließt, wodurch die Tasten nicht funktionieren (das externe Gerät blinkt nicht).

Frage - Wie schließe ich die Verbindung, wenn ich die Ansicht unsichtbar mache?

Dank!

Bitte beraten.

Antwort

0

Ich kann nicht direkt auf alle von Ihnen beschriebenen Probleme eingehen, aber ich werde sagen, dass ich in der Vergangenheit auch auf Verhaltensprobleme mit Fragmenten gestoßen bin, wenn ein Workflow, den ich nicht berücksichtigt habe, auftritt. Insbesondere möchten Sie sicherstellen, dass Ihr Fragmentmanager, mit dem Sie Ihre Fragmentübergänge verarbeiten, sowohl wissen, wo in Ihrem Fragmentstapel Sie sich befinden (und sollten), als auch, welche Elemente in Ihrem Backstack enthalten sein sollen.

Zum Beispiel, ein Problem, das ich lief, war eine Gerätedrehung, die ich nicht richtig behandelt wurde, verursacht meine Aktivität/Fragment neu erstellt werden, die wiederum mein Fragment Stack vermasselt. Dies führt zu Verrücktheiten, wenn Sie mit der Zurück-Taste durch die App navigieren, z. B. wenn Benutzeroberflächenelemente nicht richtig reagieren oder wenn sie nicht angezeigt werden.

Ich weiß nicht, wie sich die Bewegung zwischen Ihren Fragmenten und den Telefoneinstellungen negativ auf Sie auswirken kann, aber im Allgemeinen ist es wichtig, dass Sie Ihre savedInstanceStates und onResult gegebenenfalls verfolgen, wenn Sie Ihre App verlassen oder eine Aktivität neu starten.

0

Ich habe meine App so arbeiten lassen, wie ich es wollte.

Was ich tat war, eine neue Bluetooth-Verbindung jedes Mal zu öffnen, ein neues Fragment öffnet, so vermute ich, dass jede Verbindung miteinander in Konflikt stand, wenn ich es nicht ordnungsgemäß bei Änderung der Ansicht geschlossen.

Was ich getan habe, um es zu beheben, war, eine einzige globale Bluetooth-Verbindung zu öffnen, wenn die Aktivität geöffnet wird und die einzelnen Fragmente auf diese Bluetooth-Verbindungsvariable zugreifen zu lassen.

Danke.