Какой контекст использовать?

#android #android-activity #android-context

#Android #android-активность #android-context

Вопрос:

Я пишу приложение для Android, и у меня небольшая проблема с контекстом.

Я прочитал статью о разработчиках Android «Предотвращение утечек памяти«. Они предлагают использовать контекст приложения вместо контекста активности, чтобы избежать утечек памяти.

Проблема в том, что когда я это делаю, мое приложение вылетает в нескольких местах (используя Nexus S, хотя я слышал, что эта проблема возникает и на других телефонах).

Итак, у меня есть 2 вопроса-

Кто-нибудь знаком с этой проблемой?

В общем, какой контекст я должен использовать? Если мое приложение написано с использованием контекста активности, и оно работает нормально, должен ли я теперь попытаться переписать его, чтобы использовать контекст приложения?

Комментарии:

1. Вы не предоставили нам достаточно информации, чтобы помочь вам здесь. Что делает ваше приложение, что вызывает сбой? Контекст приложения, как упоминалось в статье об утечках памяти, заключается в длительном поддержании глобального состояния приложения — вы делаете что-то со многими действиями, которым необходимо совместно использовать состояние?

2. Вы правы, я опубликую дополнительную информацию о сбоях, как только получу доступ к своему компьютеру. В то же время, я не думаю, что мне нужно делиться состоянием, и мое приложение работало с ограничениями в контексте активности, пока я не прочитал эту статью. Должен ли я в любом случае пытаться использовать контекст приложения?

Ответ №1:

Не используйте приложение только потому, что хотите избежать утечек памяти. Не используйте это, если вы на самом деле не знаете, зачем вы это используете. Используйте его, как сказано в статье, только в том случае, если вы создаете объекты, которые живут отдельно от activity. Эти вещи по определению не должны выполнять действия, которые зависят от видов действий, связанных с активностью — отображение диалоговых окон и т.д.