Останутся ли дополнения Intent в Посылку, даже если новое действие запускается в рамках той же задачи? - PullRequest
3 голосов
/ 17 марта 2010

Мне было интересно ...

Таким образом, если вы начинаете новое действие через намерение, намерение должно быть сериализовано и десериализовано, потому что вам, возможно, придется отправить намерение в отдельный экземпляр виртуальной машины через IPC. Но что, если PackageManager знает , что ваше новое действие будет создано для текущей задачи? Похоже, что разумной оптимизацией Googly было бы вообще не сериализовать намерение, поскольку все это происходит внутри одной и той же виртуальной машины. Но опять же, вы не можете просто позволить новому действию использовать один и тот же экземпляр каждого пакета, потому что любые изменения, сделанные новым действием, будут отображаться в старом действии, и программист может не ожидать этого.

Итак, проводится ли эта оптимизация? Или статисты всегда маршалируются и не маршалируются, несмотря ни на что?

1 Ответ

1 голос
/ 25 января 2011

Небольшой эксперимент привел к неожиданному: если вы добавите Parcelable к своему намерению, оно действительно маршалируется, даже если вы не покидаете работающую в данный момент ВМ.

Так хорошо, что упомянутой вами оптимизации нет, иначе я бы поспорил, что люди уже использовали бы ее неправильно: -)

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