2017-05-27 4 views
1

Ich arbeite an einer Android-App, wo ich ausgiebig Animationen verwendet. Das Problem, auf das ich stoße, ist, wenn der Benutzer versehentlich oder absichtlich die Taste drückt, beginnt die vorherige Aktivität, was in Ordnung ist, aber die Aktivität, die nicht mehr sichtbar ist, läuft weiter im Hintergrund. Die Toasts zeigen, Medien werden gespielt. Jetzt wäre die einfache Lösung, nach laufenden Animationen zu suchen oder Medien per Referenz in onBackPressed() zu starten und entsprechend zu stoppen. Gibt es eine andere Möglichkeit, diese Aktivität vollständig zu töten? weil ich keine Referenz für jede Animation in dieser Aktivität behalte. Nichts scheint zu funktionieren. Bitte helfen Sie.Aktivität läuft im Hintergrund nach Zurück gedrückt

+0

Möchten Sie diese Aktivität nicht mehr ausführen, während sie im Hintergrund ist? –

+0

ja. Auch wenn ich die Aktivität nicht sehen kann, läuft sie im Hintergrund weiter. Es werden Toasts gezeigt und Geräusche werden von dieser Aktivität gehört. – Joy

+0

'onBackPressed()' wird aufgerufen, wenn der Benutzer ZURÜCK drückt. Sofern Sie es nicht überschrieben haben, ruft das Standardverhalten 'finish()' auf, das Ihre 'Aktivität' beenden soll. Wenn Sie zusätzliche Threads oder andere Hintergrundverarbeitung in Ihrer Aktivität gestartet haben, müssen Sie diese Dinge selbst beenden. Bitte zeigen Sie uns einen relevanten Code. –

Antwort

0

dies versuchen, wenn es hilft,

Beenden Sie die Aktivität aus dem Stapel

toolbar.setNavigationOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       finish(); 
      } 
     }); 

Sie auch von Manifest versuchen können

<activity android:name=".LoadingScreen" android:noHistory="true" ... /> 
+0

:(Keine Hilfe. Verursacht meine App zum Absturz .. – Joy

+0

Bitte teilen Sie die Logcat –

+0

oder versuchen, es aus dem Manifest zu behandeln, wie ich in der Antwort erwähnt. Und kommentieren Sie den obigen Code. –

0

Aktivitäten laufen nicht in Hintergrund sie laufen im Vordergrund. Ohne auf Code zu schauen, ist es schwer zu sagen, was dies verursachen könnte Problem aber wahrscheinlich könnte es der Musikdienst sein, den du angefangen hast.

+0

Eigentlich ist es ein ziemlich großer Code. Aber ich bin versuchen, es ein wenig mehr zu erklären.Ich habe eine Reihe von MediaPlayer.In onBackPressed(), wenn ich die aktuell spielenden Medien zu stoppen, wird der Code weiterhin im Hintergrund ausgeführt Boden, was schließlich dazu führt, dass neben den Medien auch Toasts gezeigt werden. Da die Aktivität nicht sichtbar ist, kann ich die Animationen offensichtlich nicht sehen. Nun, ich möchte hier erwähnen, ich habe onStop() noch nicht außer Kraft gesetzt. Soll ich das tun? – Joy

0

Bitte gehen Sie durch activity lifecycle

Sie sollten die Animationen und Medien Playbacks nach dem Lebenszyklus der Aktivität

0

Aktivität zu töten Griff manuell Sie unter Methode verwenden können, wo Sie Aktivität

töten wollen

Ende();

Lassen Sie mich für Fragen wissen!

+0

Hat nicht geholfen .... die vorherige Aktivität wurde gestartet, aber die unsichtbare Aktivität wird weiterhin im Hintergrund ausgeführt. – Joy

Verwandte Themen