Это связано с сродством к задаче Я думаю. И это не только приложение CNN, все приложения ведут себя так, потому что некоторые разработчики (как я!) Не понимают, как работает концепция задачи. Я не буду лгать тебе, даже я не понимаю этого все время.
Я считаю, что это происходит потому, что, когда вы запускаете свое приложение из Маркета, оно становится частью задачи Маркет. Следовательно, у вас есть экземпляр, который «принадлежит» задаче Market. Вы можете нормально перемещаться из него. Все проблемы случаются при нажатии Home, потому что ...
Если вы запускаете действие из Launcher, вы запускаете для приложения задачу new , предоставляя вам 2 "экземпляра" приложения, один из которых принадлежит предыдущей задаче Market, а другой - вашему. собственное приложение (где вы находитесь в корне своей задачи).
В этом новом задании вы можете вернуться назад, и в конечном итоге вы достигнете предыдущего задания, в котором есть еще один экземпляр вашего приложения. Вы достигнете точки, где вы остановились (учитывая обычный режим запуска для действий). Иногда это странно, потому что мы обычно думаем, что у одного приложения есть только один экземпляр, когда оно работает не так, как оно должно работать. Я сравниваю это с двойным запуском приложения в Windows с двумя открытыми окнами. В Android эта аналогия аналогична (по крайней мере, мне).
Это нормально, когда вы запускаете свое приложение из другого приложения, когда концепция задачи кажется естественной.
Однако в этом случае это становится странным, потому что, когда мы запускаем действие с Маркета, мы ожидаем, что экземпляр будет таким же, как и в Launcher (при запуске оттуда). Естественно, мы не ожидаем, что у Market, который использовался для загрузки приложения, будет собственное приложение, которое мы установили, и что мы (очевидно) хотим использовать его отдельно от приложения Market (я не думаю, что у Market должна быть задача) при использовании кнопки «Открыть»).
Чтобы решить эту проблему, я полагаю вы можете поиграть с allowTaskReparenting
. Однако, если это действительно то, что вызывает эту проблему, я не рекомендую это, потому что это может нарушить другие законные использования для системы задач.
Наконец, вот как я считаю, что задач работают, и я догадываюсь, откуда возникла эта проблема. Я могу ошибаться, поэтому, пожалуйста, простите меня, если этот ответ станет бесполезным позже (если вы найдете другую причину, которая отвечает на это).
Удачи!