1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Times, 20.10.2011 #1
    Times

    Times Threadstarter Neuer Benutzer

    Guten Morgen liebe Android Forumuser,

    ich habe ein kleines Problem mit meiner App.

    Also zuerst starte ich eine Activity "Anmeldung", welche mich bei einer erfolgreichen Anmeldung auf die Activity "Wiegemaske" leitet.

    Nun wenn ich auf der Wiegemaske den Zurück Button auf dem Handy drücke, habe ich folgenden Code eingetragen:

    Code:
    public void onDestroy()
            {
                super.onDestroy();
                Wiegemaske_Binder.SocketTrennen();
                Wiegemaske_Binder.TimerStartStop(false);
                unbindService(Wiegemaske_ServiceConnection);
                
                finish();
                
            }
    Nun zu meinem Problem:

    Starte App: 0-1% CPU-Auslastung
    Anmelden erfolgreich auf Wiegemaske: 0-1% CPU-Auslastung
    Zurück Button zur Anmeldung: 0-1% CPU-Auslastung

    Erneuts Drücken auf Anmelden, welche mich auf die Wiegemaske bringt:
    85-97% CPU-Auslastung UND mein Service dahinter funktioniert nicht mehr.


    Wird die Wiegemaske überhaupt richtig beendet? ... habe das Gefühl das diese weiter im Hintergrund läuft und sobald ich diese dann erneut starte es etwas aus dem Ruder läuft.

    Bitte um Hilfe!

    Mit freundlichen Grüßen

    Times
     
  2. Times, 10.11.2011 #2
    Times

    Times Threadstarter Neuer Benutzer

    /push ...

    habe leider noch immer dieses Problem, hat niemand ein ähnliches Problem oder einen Lösungsversuch?! :)
     
  3. hadez, 13.11.2011 #3
    hadez

    hadez Android-Experte

    lass das super.onDestroy(); mal weg (oder schieb es hinter die wiegemaskesachen) und mach aus dem finish(); ein this.finish();
     
  4. mradlmaier, 13.11.2011 #4
    mradlmaier

    mradlmaier Gewerbliches Mitglied




    das inflaten eines Layouts ist natürlich resource-intensiv. Erklärt natürlich nicht warum es
    Beim ersten mal nur 1% und beim nächstenmal über 90% sind.

    Im übrigen solltest Du die onDestroy() nicht benutzen. Android garantiert nicht daß im Lebenszyklus einer Activity onDestroy() jemals aufgerufen wird.

    Laut SDK sind alle callbacks ab onPause() killable, d.h. optional.

    Die Methode finish() existiert zwar, aber sollte im Normalfall nie aufgerufen werden. Der ActivityManager weiss am besten wann es an der Zeit ist eine Activity zu killen.
    Es mag seltsam erscheinen, aber das hat damit zutun wie Benutzer ein Androidgerät bedienen.
    Z.b. der Benutzer hat deine App offen und befindet sich in einer bestimmten Activity. Eine SMS wird empfangen. Der Benutzer öffnet die entsprechende Activity um die SMS zulesen.
    Deine Activity verschwindet im Hintergrund, der ActivityManager schliesst sie aber nicht, da davon auszugehen ist, dass der Benutzer nach lesen der SMS, zu deiner Activity zurück kehren möchte. Da es sehr resourcenintensiv wäre, deine App neu zu starten, wird der ActivityManager alle Activities im Speicher halten solange es geht.
    Während unter Windows freier Speicher wünschenswert ist, ist in Android das Gegenteil der Fall.

    Also, lasst den ActivityManager seine Arbeit tun, und seid glücklich euch nicht um den Lebenszyklus und das Memorymanagement Gedanken zu machen. Euch ist sicherlich schon aufgefallen, daß die Mehrzahl aller Android Apps gar keinen 'Beenden' Button haben, und zwar genau aus genannten Gründen.
     
  5. mradlmaier, 13.11.2011 #5
    mradlmaier

    mradlmaier Gewerbliches Mitglied

    Bemerkung: Ich habe nochmal in der SDK geguckt. Ab Honeycomb gibt es eine Änderung:
    alle callbacks bis einschliesslich onStop() werden aufgerufen. Dasgilt aber nur ab Android 3.0
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Android Studio 4 Knöpfe nebeneinander Android App Entwicklung Dienstag um 16:30 Uhr
[OFFEN] Android app selber entwickeln mit Bluetooth Android App Entwicklung 13.10.2017
[OFFEN] Fehler beim Projekt importieren Android App Entwicklung 03.10.2017
[ERLEDIGET] App über href starten Android App Entwicklung 28.09.2017
[Offen] Android Layout funktioniert nicht Android App Entwicklung 08.09.2017
[ERLEDIGT] LL zur Laufzeit erstellen, Abstand zwischen LL und LL möglich ? Android App Entwicklung 06.09.2017
[OFFEN] App schließt nach Öffnen sofort Android App Entwicklung 04.09.2017
[ERLEDIGT] Um einen Zusatz in einem Programm unter Android zu machen Android App Entwicklung 22.08.2017
[GESCHLOSSEN] Random ListItem ausgeben funktioniert nicht mehr Android App Entwicklung 13.08.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
Du betrachtest das Thema "Android CPU Auslastung beim wiederholten Start/Beenden der Activitys" im Forum "Android App Entwicklung",