Minimieren...welche Methode(n)...?

B

BFK

Fortgeschrittenes Mitglied
11
Hallo Forum,
hätte mal ne Frage was das minimieren einer Activity angeht.
Gibt es eine Methode die nur dann aufgerufen wird, wenn eine Activity minimiert bzw die Home-Taste gedrückt wird..?

Zum Beispiel gibt es für die Rotation des Handys die Methoden onConfigurationChanged() und onRestoreInstanceState(), die nur dann aufgerufen werden,wenn das Handy rotiert. Deshalb die Frage, ob was ähnliches für das Minimieren gibt.

Eigentlich will ich nur eine Mehtode, die nachdem Starten einer Activity, die minimiert war, ausgelöst wird...!

-MFG BFK-
 
Also onPause wird aufgerufen, wenn eine Activity in den Background geht und onResume() wenn sie wieder in den Vordergrund kommt. Event. wär dann auch onPostResume() für dich interessant.
 
Hi BFK,

guck dir ma den Lifecircle an, da sieht man eig. alle nötigen Methoden.

Und so weit mir bekannt ist, gibt es "Minimieren" in dem Sinne nicht bei Android. Es ist halt nur eine App im Vordergrund.

"Home" ist auch nichts weiteres als eine Activity.

regards
 
Hallo, und Danke erstmals für eure Antworten..!

Naja onPause(), onResume(), onPostResume bringen mir nichts, werden ja jedes mal aufgerufen, wenn ne Activity starte. Ich suche eigentlich ne Methode die nur aufgerufen wird, wenn die Activity minimiert war und wieder in den Vordergrund kommt.
Und den Lifecircle kenne ich ja schon, da stehen ja auch nur die wichtigsten Methoden.
Habe gesehen,dass die Methode onRestart() nur dann aufgerufen wird, wenn der Nutzer die Home-Taste gedrückt hat und danach wieder die Activity startet...alles schön und gut, nur was ist im Falle, dass die Activity mittels ne Methode "Minimize" (also die ich geschrieben habe) minimiert wird und dann wieder aufgerufen wird, dann wird die onRestart() Methode nicht aufgerufen.
Deshalb bin ich auf der suche nach einer Methode, die sie wahrscheinlich nicht gibt.

Vielleicht hilft es, wenn ich euch erkläre wozu ich das brauch, dann könnt ihr mir weiterhelfen...: Ich will, dass nach dem minimieren eine Methode aufgerufen wird, sagen wir die heisst nachMiniMethod(). Bevor die Activity minimiert wird schreibe ich im Editor temporär in der onPause()-Methode "minimize = true". Wenn jetzt die Activity wieder im Vordergrund kommt,lese ich in der onCreate()-Methode die Variable "minimize" vom Editor ab und checke ob die true oder false ist. Wenn true dann rufe ich die nachMiniMethode() auf (setze sie später wieder auf false), wenn false, dann nicht. Dieser Weg funkt ganz gut, es gibt nur einen Hacken..: Wenn die Activity minimiert ist (minimize = true) und aus irgendeinem Grund das Handy anstürzt oder der Nutzer das prog killt,dann wird beim nächsten start die nachMiniMethode() aufgerufen weil ja minimize immer noch true ist. Und das sollte ja nicht sein.

Was könnte ich dagegen machen..?
Oder lieber, wie geht man vor, wenn man Daten zwischenspeichern will..?
 
onCreate wird gerade eben nicht aufgerufen, wenn die App aus dem Hintergrund nach vorne kommt.
Dort kannst du also herrenlose "minimize=true" aufräumen.
 
DieGoldeneMitte schrieb:
onCreate wird gerade eben nicht aufgerufen, wenn die App aus dem Hintergrund nach vorne kommt.
Dort kannst du also herrenlose "minimize=true" aufräumen.

Nee, nee bei onResume() checke ich ob minimize true ist, habe mich verwirrt..!
Aber onCreate wird bei mir aufgerufen, wenn ich die Activity minimiere (nicht von der Home-Taste, sondern durch einem Button wo die App minimiert wird,so dass der Nutzer von der Taskleiste wieder in der App kommt ).
Da benutze ich aber "Activity.this.fnish();". Ist das ein schlechter Weg..?
Meine, was kann ich stattdessen tun..?

Weil wie gesagt, wenn ich das Minimieren nur durch die Home Taste betätige, dann könnte ich ja auch die onRestart-Methode benutzen oder wie du meist bei onCreate minimize auf false setzen..!
 
Klingt so, als wären da zwei Activities im Spiel.
Wenn du die eine nur öffnest (onCreate), um sie gleich wieder zu schließen (finish()),
klingt das ziemlich nach "von hinten durch die Brust ins Auge".
 
DieGoldeneMitte schrieb:
Klingt so, als wären da zwei Activities im Spiel.
Wenn du die eine nur öffnest (onCreate), um sie gleich wieder zu schließen (finish()),
klingt das ziemlich nach "von hinten durch die Brust ins Auge".

Nee, du hast mich da nicht richtig verstanden. Ich öffne nur eine Activity, will aber das der Nutzer durch einen Klick (sagen wir aufnem button) diese Activity minimiert. Da benutze ich "this.finish();". Und hier ist ja das Problem, weil danach die Activity neu created wird, und nicht wie bei dem normalen minimieren (durch die Home-Taste) neu gestarted.
Meine Frage wäre jetzt, was ich dagegen machen, also wie minimiere ich die Activity, ohne dass die neucreated wird...???

Hoffe ich bin verständlich geworden..!
 
es nützt nichts.

du hast kein windows hier - du hast android und da gibt es sowas wie minimieren nicht.

da gibt es nur

wird angezeigt / wird nicht angezeigt
ist aktiv / ist nicht aktiv

minimiert - maximiert - das sind begriffe, die es bei android nicht gibt.
 
finish() beendet die Activity.
Wenn du sie beendet hast und neu startest, wird sie neu kreiert.
Ist doch logisch, oder?
 
@swordi
Klar ich verstehe schon, nur ich kann mir nicht vorstellen, dass es keine Möglichkeit gibt ne App zu minimieren ohne den Home Button zu benutzen. Ich bin mir zwar nicht sicher, aber ich glaub ich habe schon Apps gesehen, die den Nutzer ne minimier-Funktion anbieten..!


@DieGoldeneMitte
Klar ist das logisch. Habe ja auch nicht gesagt, dass ich nicht verstanden hab, dass die Activity neu created wird, habe ja nur gefragt ob es eventuell ne Alternative gibt, wie z.B. Activity in den Hintergrund schicken oder den Home Bereich anzeigen oder Activity verstecken oder was auch immer, das ich benutzen kann, sodas danach die Activity restartet wird und nicht von Anfang an gestarted wird...!
 
BFK schrieb:
habe ja nur gefragt ob es eventuell ne Alternative gibt, wie z.B. Activity in den Hintergrund schicken oder den Home Bereich anzeigen

Wenn du die Activity nicht beenden willst, dann beende sie nicht. :D
So einfach ist das. :D

Ja, den Weg gibt es. Drücke auf die "Home-Taste". :D:D:D
ADD 1: Den User entscheiden lassen, ob der eine App verlassen will, klingt für deinen Anwendungsfall nach der richtigen Lösung.

ADD 2: Man kann den Launcher auch via Intent starten. Steht sogar explizit in der Doku:
Here are some examples of other operations you can specify as intents using these additional parameters:

  • ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: BFK
Danke werde es mal ausprobieren..!

Meine letzte Idee wäre jetzt noch einen Service zu benutzen, wo ich da Daten auslagern kann. Dann kann ich beim Start der Activity erst checken ob der Service läuft. Aber ok werde noch sehen was die beste Lösung ist für meinen Fall..!
 
Fürs Danke gibt es einen Button. :D

Mit Services kann man sowas auch deichseln. Sie sind aber eher dafür da, wenn etwas verarbeitet werden soll während deine App im Hintergrund ist.
 
DieGoldeneMitte schrieb:
Fürs Danke gibt es einen Button. :D

Mit Services kann man sowas auch deichseln. Sie sind aber eher dafür da, wenn etwas verarbeitet werden soll während deine App im Hintergrund ist.

Ja klar ist nicht die beste Lösung weil dies ja noch zusätzlich den Akku leert,wenn auch wenig.!
Aber ok, das wäre ja nur die aller letzte Lösung..!
 

Ähnliche Themen

Y
Antworten
4
Aufrufe
1.207
swa00
swa00
P
Antworten
6
Aufrufe
763
ppp
P
5
Antworten
22
Aufrufe
1.410
590239
5
Zurück
Oben Unten