it-swarm.com.de

App wird beendet, anstatt zur nächsten Aktivität zu gehen

Ich rufe eine Tätigkeit aus einer einfachen Absicht heraus an:

Intent startNewActivityOpen2 = new Intent(this, TransitionLandscape.class);
if (extras != null) {
        if (!extras.isEmpty()) {

           startNewActivityOpen2.putExtras(extras);
        }
}

startActivity(startNewActivityOpen2);

Ist es wichtig, dass diese aktuelle Aktivität auch TransistionLandscape.class ist? Die App wird beendet (ohne abstürzen zu lassen), wenn ich die neue Aktivität starte. Beim Durchlaufen des Debuggers wird die neue Aktivität nie aufgerufen: (onCreate in wird nie aufgerufen) 

Aus der Dokumentation geht hervor, dass eine Aktivität sich selbst aufrufen kann. 

Logcat :

12-10 21:08:23.410 543-553/? I/ActivityManager: START u0
{cmp=com.assistek.ediary/.TransitionLandscape (has extras)} from pid
4801
12-10 21:08:23.470 543-573/? D/dalvikvm: GC_FOR_ALLOC freed 437K, 18% free 14435K/17524K, paused 51ms, total 52ms
12-10 21:08:23.490 4801-4801/com.assistek.ediary D/Base Activity: **********Pause class com.assistek.ediary.TransitionLandscape
    **********Pause Navigate: true
    **********Resume class com.assistek.ediary.TransitionLandscape
    **********Focus: false Activity: class com.assistek.ediary.TransitionLandscape
12-10 21:08:23.500 4801-4801/com.assistek.ediary D/Base Activity: **********Pause class com.assistek.ediary.TransitionLandscape
    **********Pause Navigate: false
12-10 21:08:23.520 543-600/? I/InputReader: Reconfiguring input devices.  changes=0x00000004
    Device reconfigured: id=2, name='elan-touchscreen', size 800x1280, orientation 0, mode 1, display id 0
12-10 21:08:23.520 543-1012/? I/ActivityManager: Config changes=480 {1.0 310mcc170mnc en_US ldltr sw600dp w600dp h880dp 213dpi
lrg port finger -keyb/v/h -nav/h s.11}
12-10 21:08:23.540 961-961/? I/PCKeyboard: onConfigurationChanged()
12-10 21:08:23.580 543-561/? I/WindowManager: Screen frozen for +74ms due to Window{425793b8 u0 com.assistek.ediary/com.assistek.ediary.TransitionLandscape}
12-10 21:08:23.600 634-634/? D/PhoneStatusBar: mSettingsPanelGravity = 8388661
12-10 21:08:23.690 543-1045/? I/ActivityManager: Killing 1995:com.google.Android.setupwizard/u0a50 (adj 15): empty #17
12-10 21:08:23.720 4801-4801/com.assistek.ediary W/IInputConnectionWrapper: showStatusIcon on inactive InputConnection
12-10 21:08:23.730 4801-4801/com.assistek.ediary D/Base Activity: **********Stop Navigate Away false
    **********Stop class com.assistek.ediary.TransitionLandscape
    **********Stop Focus ToClass class com.assistek.ediary.TransitionLandscape
    Task ID 151
    **********Destroy class com.assistek.ediary.TransitionLandscape
12-10 21:08:23.740 4801-4801/com.assistek.ediary D/Time calculation:: Destroy: class
com.assistek.ediary.TransitionLandscape
12-10 21:08:25.660 543-561/? D/dalvikvm: GC_EXPLICIT freed 287K, 18% free 14449K/17524K, paused 8ms+5ms, total 78ms
12-10 21:08:26.430 543-600/? I/InputReader: Reconfiguring input devices.  changes=0x00000004
    Device reconfigured: id=2, name='elan-touchscreen', size 800x1280, orientation 1, mode 1, display id 0
12-10 21:08:26.430 543-566/? I/ActivityManager: Config changes=480 {1.0 310mcc170mnc en_US ldltr sw600dp w961dp h528dp 213dpi lrg land
finger -keyb/v/h -nav/h s.12}
12-10 21:08:26.460 961-961/? I/PCKeyboard: onConfigurationChanged()

Auch anrufen:

recreate() 

statt zu einer neuen Aktivität zu wechseln, wird auch die App beendet (ohne Absturz).

EDIT: Manifest

        <activity
        Android:name=".TransitionLandscape"
        Android:configChanges="orientation"
        Android:label="@string/app_name"
        Android:launchMode="singleTask"
        Android:screenOrientation="landscape"
        Android:windowSoftInputMode="stateHidden">
    </activity>

Tatsächlich bewirkt jede Aktivität, die ich nach TransitionLandscape aufrufe, dass die App beendet wird. Ist es ein Gedächtnisproblem? 

4
Kristy Welsh

Ihre App stürzt nach dieser Absicht ab, wenn die geänderte Konfiguration empfangen wird.

12-10 21:08:23.520 543-600/? I/InputReader: Reconfiguring input devices.  changes=0x00000004
    Device reconfigured: id=2, name='elan-touchscreen', size 800x1280, orientation 0, mode 1, display id 0
12-10 21:08:23.520 543-1012/? I/ActivityManager: Config changes=480 {1.0 310mcc170mnc en_US ldltr sw600dp w600dp h880dp 213dpi
lrg port finger -keyb/v/h -nav/h s.11}
    12-10 21:08:23.540 961-961/? I/PCKeyboard: onConfigurationChanged()
12-10 21:08:23.740 4801-4801/com.assistek.ediary D/Time calculation:: Destroy: class
com.assistek.ediary.TransitionLandscape

kannst du es mit versuchen? 

Android:configChanges="orientation|screenSize|keyboardHidden" />

Es gibt auch andere Möglichkeiten, Konfigurationsänderungen durchzuführen Sie können dieses link überprüfen.

2
nkalra0123

Fordern Sie bitte die folgenden Zeilen an.

Android:configChanges="orientation"

Zu

Android:configChanges="orientation|screenSize|keyboardHidden" />

In Ihrer Manifestdatei.

1
Akshay Sharma

es ist kein Speicherproblem, 

diese Zeile Ihres Protokolls besagt eindeutig, dass Sie ein Problem haben, wenn Sie die Ausrichtung der Aktivität ändern (onConfigurationChanged ()).

WindowManager: Bildschirm für + 74ms wegen Fenster eingefroren

in der Manifest-Datei ist es nicht möglich, die Aktivität beim Ändern der Ausrichtung Ihres Geräts wiederherzustellen 

versuchen Sie, die App-Ausrichtung mit Code in der Methode recreate () oder in der Methode onCreate () zu ändern

setRequestedOrientation(Configuration.ORIENTATION_LANDSCAPE);
0
Rohit Chauhan

Ich denke, Sie sollten versuchen, den "Adding Extras-Codeblock" zu löschen, um zu wissen, ob das Problem von Anfang an beginnt, oder Sie können Ihre TransitionLandScape-Aktivität auch ein wenig ändern. Löschen Sie beispielsweise den Befehl launchMode = "singleTask" in der Manifest-Datei App erneut zu überprüfen, ob Sie das Problem gelöst haben. Es ist nur meine Meinung und ich bin nicht sehr gut in Englisch, es tut mir leid, wenn ein Grammatikfehler vorliegt.

0