Приложение выходит вместо перехода к следующему действию - PullRequest
0 голосов
/ 30 декабря 2018

Я вызываю деятельность с помощью простого намерения:

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

           startNewActivityOpen2.putExtras(extras);
        }
}

startActivity(startNewActivityOpen2);

Имеет ли значение, что эта текущая деятельность также является TransistionLandscape.class?Приложение закрывается (без сбоев), когда я начинаю новое действие.Проходя через отладчик, новое действие никогда не вызывается: (onCreate in никогда не вызывается)

Из документации кажется, что действие может вызвать себя.

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()

Кроме того, вызов:

recreate() 

вместо перехода к новому действию также приводит к закрытию приложения (безсбой).

РЕДАКТИРОВАТЬ: Манифест

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

На самом деле любое действие, которое я вызываю после TransitionLandscape, приводит к закрытию приложения.Это проблема с памятью?

Ответы [ 5 ]

0 голосов
/ 07 января 2019

Пожалуйста, измените следующие строки.

android:configChanges="orientation"

На

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

В вашем файле манифеста.

0 голосов
/ 07 января 2019

это не проблема с памятью,

эта строка вашего журнала ясно говорит о том, что у вас есть проблема при изменении ориентации деятельности ( onConfigurationChanged () )

WindowManager: экран заблокирован на + 74 мс из-за Window

в файле манифеста, он не позволит воссоздать активность при изменении ориентации вашего устройства

попытатьсяизменить / установить ориентацию приложения с помощью кода на метод create () или onCreate () метод

setRequestedOrientation(Configuration.ORIENTATION_LANDSCAPE);
0 голосов
/ 30 декабря 2018

Я думаю, вам следует попробовать удалить «Добавление дополнительного блока кода», чтобы знать, что если проблема начинается с нее, или вы также можете немного изменить свою активность TransitionLandScape, например, удалив тег launchMode = "singleTask" в файле манифеста, ... затем снова запустите приложение, чтобы проверить, решили ли вы проблему.Это просто мое мнение, и я не очень хорошо разбираюсь в английском, извините, если есть грамматическая ошибка.

0 голосов
/ 03 января 2019

После этого намерения происходит сбой вашего приложения при получении измененной конфигурации.

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

Можете ли вы попробовать с помощью

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

Существуют и другие способы обработки изменений конфигурации, которые вы можетепроверить ссылку

0 голосов
/ 30 декабря 2018

Используйте разные имена для своей деятельности.

...