2016-08-25 4 views
0

Ich habe ein Problem mit startActivity() Methoden.Android verhindern Neustart Aktivität nach StartActivity

Problem Struktur

  1. Klicken Sie auf Link (zB http://google.com) in einigen Textview, mit LinkMovementMethod
  2. Rückruf in LinkCatcher Klasse (weil einige Textview existieren fast alle Aktivitäten, so dass ich Außen-Klasse)
  3. Ereignis mit MainActivity unter Verwendung von Otto (weil es startActivity outside of activity Problem verhindern.)
  4. auf MainActivity, Absicht zu Activity B ohne Flagge, nur eine extra (Link)
  5. Wenn Aktivität B erstellt wird Aktivität A zerstören und rufen onCreate(Bundle savedInstanceState) (i einfügen einige Log.e zu meinem Code, es auf jeden Fall wieder aufrufen Log-Code)
Methoden

Versuchte

  1. Insert android: launchMode = "SingleInstance" in MainActivity, Aktivität B
  2. android Insert: configChanges = "Orientierung | Bildschirmgröße | keyboardHidden" in MainActivity (es bedeutet, Orientierung ist kein Problem. i bereits implementieren onSaveInstanceState in allen Aktivitäten meiner Anwendung) 3.Remove Schritt 3 statt Beitrag Ereignisse MainActivity, rufen startActiivty() in LinkCatcher Klasse

ich alle Methoden ausprobiert, die ich es versuchen. und ich weiß nicht, warum Aktivität ist zerstört und re-call onCreate (nicht onResume), auch ich verwende keine finish() -Methoden.

+0

versuchen Sie, etwas Speicher auf dem Gerät oder erstellen Sie einen Emulator mit viel Speicher und prüfen, ob es einen Unterschied mit freien RAM hat, so können wir den Fall, wo Android tötet Aktivität A. Tone es sicher, aber ich bezweifle es Android tötet die Aktivität bei jedem Klick und Fall – Tudor

+0

@PopTudor Ich verwende bereits 3 GB Speicher (Galaxy S6) Gerät, und ich auch mit 2 GB Speicher Emulator. aber das Problem ist passiert. Deshalb glaube ich nicht, dass dieses Problem durch die Erinnerung passiert ist. (Auch wenn ich die largeHeap-Option verwende) – WindSekirun

+0

Bitte poste einen Code, damit wir deinen Logcat ansehen und überprüfen können. Das ist kein Standardverhalten, etwas Seltsames passiert. Veröffentlichen Sie auch Ihr Manifest. –

Antwort

1

Da Android so konzipiert ist, kann jederzeit eine Aktivität, die gerade nicht auf dem Bildschirm angezeigt wird, gelöscht werden. Du kannst es nicht verhindern. Sie können dafür sorgen, dass Sie alle erforderlichen Daten in onSaveInstanceState speichern und in onCreate aus dem Bundle oder in onRestoreInstanceState wiederherstellen können.

+0

aber ich denke, das ist etwas falsch. Es gibt zwei Möglichkeiten, um auf Aktivität zuzugreifen (mit startActivity): B. Eine ist Navigationsschublade, eine andere ist ein Ereignis aus der LinkCatcher-Klasse, wenn der Zugriff durch die Navigationsleiste nicht möglich ist – WindSekirun

Verwandte Themen