У меня есть очень простое приложение, основанное на руководстве по Создание вашего первого приложения. Есть два действия: MainActivity
вызывает от DisplayMessageActivity
до startActivity()
.
При входе в DisplayMessageActivity
вижу:
MainActivity.onStop()
как и ожидалось, но когда я нажимаю кнопку «Назад», чтобы вернуться к родительскому элементу MainActivity
, я получаю:
MainActivity.onDestroy()
MainActivity.onCreate(null)
MainActivity.onStart()
Активность всегда уничтожается для этого очень простого приложения. Но, согласно документации (второй пункт), типичное поведение для действия быть остановлен и перезапущен в таких случаях.
Кроме того, onDestroy()
не происходит при первом запуске дочерней активности, а только после нажатия кнопки «Назад».
Два вопроса:
- Есть ли способ предотвратить уничтожение родителя в общем случае?
- Почему здесь
null
передаетсяonCreate()
? Это мешает мне сохранить состояние черезonSaveInstanceState()
.
Обратите внимание, что я проверил, что флажок «Настройки» -> «Параметры разработчика» -> «Приложения» -> «Не сохранять действия» не установлен.
Редактировать:
Вот как дочерняя активность связана с родительской:
<activity
android:name="com.example.helloworld.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.helloworld.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.helloworld.MainActivity" />
</activity>
Проследив DisplayMessageActivity.onOptionsItemSelected()
, я вижу, что он звонит Activity.onNavigateUp()
.
onSaveInstanceState()
вMainActivity
? Вы поворачивали телефон из портретной в альбомную или наоборот во времяDisplayMessageActivity
? - person Greg Giacovelli   schedule 29.12.2013onSaveInstanceState()
вMainActivity
. Это помогло, когда экран вращался во времяMainActivity
. Однако в описанной выше ситуации это было бесполезно, так какonCreate()
передается в связкеnull
. - person mtoossi   schedule 29.12.2013DisplayMessageActivity
. Я пробовал это несколько раз с этим и еще одним приложением, которое я написал, и родительская активность каждый раз уничтожается и создается с пакетомnull
. - person mtoossi   schedule 29.12.2013DisplayMessageActivity
имеет толькоTextView
, как и в учебнике, на который я ссылался. Я возвращаюсь кMainActivity
, нажимая кнопку «Назад» на панели действий. - person mtoossi   schedule 29.12.2013MainActivity
, так что, может быть, что-то не так с тем, как я связываюсь с родителем? - person mtoossi   schedule 29.12.2013