Почему Android не сохраняет состояние приложения после нажатия кнопки «Домой», если приложение запускается первым из приложения App Manager? - PullRequest
7 голосов
/ 08 июля 2011
  • Действия по воспроизведению проблемы.

    1. Создание или загрузка любого приложения с несколькими действиями.
    2. Загрузка файла APK в SDCard или установка с маркета.
    3. Установка приложения с помощью стандартного диспетчера приложений.
    4. После установки в диспетчере приложений нажмите «Открыть» или нажмите на уведомление после загрузки.
    5. После запуска приложения перейдите к следующему (второму)Экран приложения.
    6. Нажмите ДОМОЙ.
    7. Нажмите значок приложения.
  • Что произошло.

Appliaction перезапускается с первого экрана и не сохраняет второй экран.Приложение сохраняет активности обычным образом после перезапуска приложения или если вы нажимаете кнопку НАЗАД в приложении на главном экране.

  • Должно быть правильное поведение.

Приложение всегда должно сохранять активности внормальный способ.

Как я могу решить эту проблему для моего приложения?Можно ли перезапустить приложение при первом запуске?

Ответы [ 2 ]

1 голос
/ 08 июля 2011

В зависимости от того, как приложение определено в файле манифеста и есть ли у него какой-либо механизм для сохранения и восстановления его состояния ....

В зависимости от ваших шагов, оно может создать несколько экземпляров одного и того же приложения.(отметьте this )

Или он не использует экземпляр Bunble в onCreate

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

Редактировать :

Так что, если я правильно понимаю из ваших комментариев, это работает так, как вы ожидаете, когда вы выходите из приложения с помощью клавиши BACK, но не когда вы используете клавишу HOME ...

Прочитайте ссылку, которую я разместил:http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html

Вы поймете, что когда вы нажимаете клавишу HOME, экземпляр вашего приложения, в котором вы находились, не уничтожается (и поэтому текущее состояние не сохраняется).Повторный запуск только запускает другой экземпляр (с начального экрана).

Когда пользователь нажимает клавишу BACK, текущее действие уничтожается, а предыдущее действие возобновляется.

...

Задача - это единое целое, которое может перейти в «фон», когда пользователи начинают новое задание или переходят на главный экран с помощью клавиши HOME

Если вы хотите изменить поведение, посмотрите на launchMode в манифесте.

0 голосов
/ 11 июля 2011

Я думаю, что App Manager запускает мое приложение неправильно.Он запускает мои приложения в своей задаче.Когда я нажимаю ДОМОЙ и нажимаю значок приложения, я запускаю вторую задачу с моим приложением.

Я проверил это.Я сделал два приложения App1, App2.В App2 есть два действия A и B. App1 запускает App2 самым простым способом.

Intent intent = new Intent(Intent.ACTION_RUN);
intent.setComponent(new ComponentName("org.app2.test", "org.app2.test.Screen1"));

Тест 1. Запустите App1.Приложение 1 выполняет действие App2 A. Активность A выполняет действие B. Нажмите Дом.Нажмите значок App2.Вы можете увидеть действие App2 A.

То, что я изменил код для запуска App2.

Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setComponent(new ComponentName("org.app2.test", "org.app2.test.Screen1"));

Тест 2. Запустите App1.Приложение 1 выполняет действие App2 A. Активность A выполняет действие B. Нажмите Дом.Нажмите значок App2.Вы можете увидеть приложение App2 B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...