J'appelle une activité par une intention simple:
Intent startNewActivityOpen2 = new Intent(this, TransitionLandscape.class);
if (extras != null) {
if (!extras.isEmpty()) {
startNewActivityOpen2.putExtras(extras);
}
}
startActivity(startNewActivityOpen2);
Est-il important que cette activité actuelle soit également TransistionLandscape.class? L'application se ferme (sans se planter) au démarrage de la nouvelle activité. En passant par le débogueur, la nouvelle activité n'est jamais appelée: (onCreate in n'est jamais appelé)
D'après la documentation, il semble qu'une activité puisse s'appeler elle-même.
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()
Aussi, appelant:
recreate()
au lieu d'aller à une nouvelle activité, provoque également la fermeture de l'application (sans blocage).
EDIT: Manifeste
<activity
Android:name=".TransitionLandscape"
Android:configChanges="orientation"
Android:label="@string/app_name"
Android:launchMode="singleTask"
Android:screenOrientation="landscape"
Android:windowSoftInputMode="stateHidden">
</activity>
En fait, toute activité que j'appelle après TransitionLandscape entraîne la fermeture de l'application. Est-ce un problème de mémoire?
Votre application se bloque après cette intention, lorsque la configuration modifiée est reçue.
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
pouvez-vous essayer avec
Android:configChanges="orientation|screenSize|keyboardHidden" />
Vous pouvez également vérifier cette link
Vous demander de bien vouloir changer les lignes ci-dessous.
Android:configChanges="orientation"
À
Android:configChanges="orientation|screenSize|keyboardHidden" />
Dans votre fichier manifeste.
ce n'est pas un problème de mémoire,
cette ligne de votre journal indique clairement que vous avez un problème lorsque vous modifiez l'orientation de l'activité ( onConfigurationChanged () )
WindowManager: Écran gelé pendant + 74 ms en raison de la fenêtre
dans le fichier manifeste, il ne sera pas possible de recréer une activité en changeant l'orientation de votre appareil
essayez de changer/définir l'orientation de l'application avec le code sur recréer () méthode ou dans onCreate () méthode
setRequestedOrientation(Configuration.ORIENTATION_LANDSCAPE);
Je pense que vous devriez essayer de supprimer le "bloc de code Ajout d’extras" pour savoir que si le problème commence par celui-ci ou que vous pouvez également modifier légèrement votre activité TransitionLandScape, par exemple en supprimant la balise launchMode = "singleTask" dans le fichier manifeste, ... app à nouveau pour vérifier que vous avez résolu le problème. C'est juste mon avis et je ne suis pas très bon en anglais, désolé s'il y a une erreur de grammaire.