Ich habe eine Frage zu meiner doch recht einfachen App, die ich wohl am ehesten in der Rubrik "Konzept" stelle. Meine App soll die Laufstärke des Smartphone-Lautsprechers (global mix) über die gegebene Grenze erhöhen (solche Apps gibts auch dutzendweise im Play Store unter "Volume Booster"). Meine App funktioniert recht gut, aber mein Gefühl sagt mir, dass ich nicht das optimale Konzept dafür gewählt habe und man es viel besser machen könnte. Was ich programmiert habe:
• Meine App besteht nur aus einer einzigen kurzen Activity.
• Diese erstellt bei der Erstausführung nur eine Custom Notification, siehe Bild unten.
• Damit die TV-App, deren Lautstärke ich hin und wieder verstärken will, parallel dazu überhaupt hörbar ist, muss ich meine App am Schluss von onResume mittels moveTaskToBack(true) noch in den Hintergrund bringen.
• Wenn ich jetzt einen Button meiner Custom Notification klicke, rufe ich mit einem Intent mit Flag Intent.FLAG_ACTIVITY_SINGLE_TOP wieder meine einzige Activity auf (die dann entsprechend einem Extra-Wert des Intents die Lautstärke verändert, am Schluss meine Custom Notification gleich wieder upgedatet anzeigt und unverzüglich wieder in den Hintergrund geht). (Anzeige aller Notifications mittels dieses Snippets).
Wie geschrieben, funktioniert meine App recht gut, hat aber zwei Schönheitsfehler:
• Jedesmal, nachdem ich in meiner Custom Notification einen Button klicke, flackern alle Notifications recht stark, wenn ich meine erneut upgedatet anzeige.
• Wenn Android nach langem Nichtgebrauch meine App aus dem Speicher wirft, entgleist meine App selbst bei Neustart: Der obige "Extra"-Wert ist immer so gross, wie er beim letzten Mal vor der Speicherbereinigung war (egal, welchen Button ich klicke). Ich muss tatsächlich das Smartphone herunterfahren und rebooten, erst dann funktioniert wieder alles.
Es muss aber einen Weg ohne diese beiden Nachteile geben, denn z.B. die sehr ähnliche Play-Store-App hier hat all diese Nachteile nicht. Ich habe auch schon einen Foreground-Service ausprobiert, aber darin kann ich keine Custom Notification erstellen, nur standardmässige. Jede Bemerkung von Eurer Seite ist herzlich willkommen...