Warum bieten Android-Anwendungen keine "Exit" -Option?

8

Gibt es etwas in den Android-Entwicklerrichtlinien, das Entwickler davon abhält, die Option zu bieten, eine Anwendung innerhalb der Anwendung selbst zu beenden (zu beenden) ?

Ich liebe Multitasking und alles, aber mir ist nicht klar warum:

  • Die große Mehrheit der Apps hat keine eigenen Exit-Funktionen und läuft daher immer weiter
  • Sie haben keine Wahl, wenn Sie das Telefon einschalten - sie tun das nur standardmäßig

Diese beiden Dinge führen dazu, dass die Speichernutzung ständig zunimmt und Ihr Gerät mit dieser Leistungslast immer wieder ausgeführt wird, obwohl Sie vielleicht nur bestimmte Anwendungen ausführen möchten, die einige davon ausführen Zeit .

Vermisse ich etwas?

    
Howiecamp 13.03.2010, 20:51
quelle

5 Antworten

14
  

Gibt es etwas im Android?   Entwicklerrichtlinien, die disuadea   Entwickler von der Bereitstellung der Option   "aussteigen" (aufhören zu laufen) an   Anwendung von innerhalb der   Anwendung selbst?

Ja. Es wird im Allgemeinen nicht benötigt, genauso wie es im Allgemeinen nicht notwendig ist, einen Web-Server neu zu starten, weil ein Benutzer mit einem Browser entschieden hat, dass er mit einer Web-App fertig ist.

  

die überwiegende Mehrheit der Apps haben nicht   ihre eigenen Exit-Funktionen und damit   mach einfach weiter für immer

Sie laufen nicht für immer weiter. Android schließt die Dinge nach Bedarf.

  

geben Sie keine Wahl über das Laufen   wenn Sie das Telefon einschalten - sie einfach   standardmäßig tun

Diese Entwickler achten nicht auf mich .

  

Beide Dinge führen zur Erinnerung   Nutzung stetig steigend

Im Allgemeinen nicht. Wenn Sie bestimmte Apps finden, die dies tun, deinstallieren Sie sie.

  

und Ihr Gerät läuft damit   Leistungsbelastung die ganze Zeit

Im Allgemeinen nicht. Wenn Sie bestimmte Apps finden, die dies tun, deinstallieren Sie sie.

Auch diese Frage ist ein Duplikat von diesem .

    
CommonsWare 13.03.2010, 21:23
quelle
8

"Beide Dinge führen dazu, dass die Speichernutzung ständig zunimmt"

Das spielt keine Rolle, da Android-Apps auf eine bestimmte Menge an RAM beschränkt sind. Durch das Freigeben von RAM wird anderen Anwendungen kein RAM mehr zur Verfügung gestellt.

    
Romain Guy 13.03.2010 21:49
quelle
1

Im Grunde genommen besteht keine Notwendigkeit für einen Quit-Button, solange der Entwickler seine App gut gestaltet. Android-Aktivitäten werden gestoppt, wenn sie nicht sichtbar sind und Ressourcen an anderer Stelle benötigt werden, sodass sie keine Ressourcen mehr verbrauchen. Sie können den Lebenszyklus hier nachlesen:

Hier ist eine verwandte Frage :

    
Jay Askren 13.03.2010 21:25
quelle
1

Aus Google Android Application Fundamentals Seite:

  

Herunterfahren von Komponenten   Ein Inhaltsanbieter ist nur aktiv, wenn er auf eine Anfrage von einem ContentResolver reagiert. Und ein Broadcast-Empfänger ist nur aktiv, wenn er auf eine Broadcast-Nachricht antwortet. Daher müssen diese Komponenten nicht explizit heruntergefahren werden.

     

Aktivitäten hingegen bieten die Benutzeroberfläche. Sie befinden sich in einer lang andauernden Konversation mit dem Benutzer und können auch im Leerlauf aktiv bleiben, solange die Konversation fortgesetzt wird. Ähnlich können Dienste auch für eine lange Zeit laufen. Also verfügt Android über Methoden, um Aktivitäten und Dienste ordnungsgemäß herunterzufahren:

     

Eine Aktivität kann durch Aufrufen ihrer finish () -Methode beendet werden. Eine Aktivität kann eine andere Aktivität beenden (eine, die mit startActivityForResult () gestartet wurde), indem sie finishActivity () aufruft.   Ein Dienst kann durch Aufrufen seiner stopSelf () -Methode oder durch Aufrufen von Context.stopService () beendet werden.   Komponenten können auch vom System heruntergefahren werden, wenn sie nicht mehr verwendet werden oder wenn Android Speicher für aktivere Komponenten zurückfordern muss. Ein späterer Abschnitt, Komponentenlebenszyklen, diskutiert diese Möglichkeit und ihre Auswirkungen detaillierter.

Es scheint also so, als ob Content-Provider und Broadcast-Empfänger niemals explizit heruntergefahren werden sollten, da sie inaktiv sind, während sie ihre spezifischen Ereignisse nicht behandeln.

Was die Aktivitäten anbelangt, würde ich dafür plädieren, in bestimmten Fällen ein Ende zu haben. Wenn Ihre App einen endlichen Status hat, in dem der Benutzer sie verwendet, warum bleibt sie am Leben, bis GC sie bekommt? Der Aktivitätsmanager muss diese Aktivität weiterhin verfolgen, während der Benutzer seine Aufgabe beendet hat. Mein bestes Beispiel dafür ist der Rechner. Sie öffnen es, Sie haben es ein Problem für Sie lösen, und dann schließen Sie es. Wenn die onCreate-Funktion so teuer ist, dass es effektiver ist, onCreate einmal und dann onRestart zu machen, wann immer der Benutzer zu Ihrer Anwendung zurückkehrt, dann machen Sie wahrscheinlich etwas falsch. Vielleicht interpretiere ich falsch, wie Android mit Aktivitäten umgeht, und wenn es so ist, bin ich immer daran interessiert, mehr zu lernen:)

    
Adam 13.03.2010 22:05
quelle
-1

Es kommt alles auf die Antwort zurück, dass die Benutzer die totale Kontrolle über ihre Lauf- und Autostart-Liste haben wollen und was sie tun und nicht installieren wollen, zum Beispiel Google Maps, etc, es gibt keine zwei Möglichkeiten.

    
Chance 04.06.2011 07:04
quelle

Tags und Links