Android - Почему люди обращаются к статическому контексту inline, а не передают его в Method () один раз? - PullRequest
0 голосов
/ 25 февраля 2019

Я приближаюсь к завершению моего первого настоящего Приложения.
По пути (за последние пару лет) я видел много примеров кода.
Одна вещь непротиворечива: я всегда вижу использованиестатических context ссылок, таких как:
getApplicationContext(), this.getActivity() и многих других подобных ссылок ..

Но ранее сегодня, после вопроса о том, как извлечь контекст из метода в приемнике,
Мне сказали просто "передать его в контекст", например: public void receiverMethodCall(Context context).

Мой вопрос: Если это так просто, почему люди часто делают повторные статические ссылки на контекствставлять в свой код, снова и снова, вместо того, чтобы просто передавать содержащий метод a Context для начала и ссылаться на него, используя "context" при необходимости?

1 Ответ

0 голосов
/ 26 февраля 2019

Я надеюсь, что я понял ваш вопрос в значении - вы получили свой ответ и сказали передать контекст как переменную с типизированным контекстом - но не забывайте, что когда вы хотите вызвать свой метод и передать ему контекст, у вас будетчтобы узнать, что это за контекст, и инициализировать его.

Например, , если вы хотите сделать Toast, одним из параметров метода является контекст, и если вы используете много тостов, он будетлучше иметь контекстную ссылку и использовать ее каждый раз, когда вы хотите показать тост (или использовать любой другой метод, требующий контекста), вместо использования this.getActivity() или getApplicationContext().
. Таким образом вы можете предотвратитьдублированный код, и вам не нужно будет обращаться к контексту в вашем коде много раз, теперь на вопрос о «почему люди часто делают повторные статические ссылки на контекст встроенными в своем коде» .

Я могу вспомнить один случай, когда было бы неплохо сделать 2 ссылки на контекст: допустим, у вас есть 2 метода в одной и той же деятельности,t используют контекст - если эти методы используются один раз, вы можете создать контекстную ссылку внутри метода и позволить сборщику мусора обрабатывать эту ссылку.

Я должен сказать, что согласен с вами, я думаю, что еслиего необязательно просто передать контекст вашему методу и позволить ему использовать его, это действительно простое решение.

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