После нажатия кнопки «Домой» при повторном запуске приложение показывает начальную активность, не текущую

У меня есть приложение, которое имеет начальное действие (A - также указанное в панели запуска), из которого оно позволяет пользователю запускать другое действие (B). I я сохраняю состояние Activity B (onSaveInstanceState () и восстанавливаю его в onCreate ()).

На некоторых телефонах (N1 и Motrola Milestone на данный момент, но не Galaxy S) после запуска B, если пользователь нажимает кнопку Home (т.е. приложение переходит в фоновый режим), а затем сразу же повторно запускает приложение, им снова отображается действие A (не B). Но если они запускают его из приложений «Недавние» (длительное нажатие кнопки «Домой»), они переходят к действию B.

Насколько я понимаю из документации Android, если задача не была убита (в данном случае это не похоже, так как ничего не делается, кроме повторного запуска действия с экрана приложения), мы должны увидеть восстановление действия B на запуск (поскольку он находится на вершине стека). Так что я просто не могу понять, что, черт возьми, здесь не так.

Кстати, ориентация меняется во время использования приложения работает нормально (все сохраняет и восстанавливает нормально). Эта странная проблема беспокоит меня в течение некоторого времени, и методом проб и ошибок я обнаружил, что, когда я отключил ориентацию для этого действия, а затем попытался перезапустить, B показал, как ожидалось.

Так что кто-нибудь еще сталкивался с чем-то вроде это, и если да, то как это можно решить?

Я собираюсь сохранить текущее действие в SharedPreferences (как упоминалось в этом сообщении ), и они восстанавливают его из этого в действии A, однако хотели бы знаю, если мне что-то здесь не хватает. Разве восстановление B при повторном запуске не должно быть поведением по умолчанию?

14
задан Community 23 May 2017 в 12:01
поделиться