MyTetra Share
Делитесь знаниями!
Базы данных SQLite
22.04.2017
10:19
Раздел: Android - books - AndroidProgramming2e - 14 Базы данных SQLite

Ранее в этой главе при вызове конструктора CrimeLab использовался контекст

приложения:

private CrimeLab(Context context) {

mContext = context.getApplicationContext();

...

}

Почему именно контекст приложения? Когда следует использовать его вместо активности в качестве контекста?

Важно учитывать жизненный цикл каждого из этих объектов. Если в приложении

существуют какие-либо из ваших активностей, Android также создает объект

Application. Активности появляются и исчезают в процессе работы пользователя

с приложением, но объект Application продолжает существовать. Его срок жизни

значительно превышает срок жизни любой отдельной активности.

Объект CrimeLab является синглетом, то есть после того, как он будет создан, он

продолжит существовать до тех пор, пока не будет уничтожен весь процесс приложения.

В CrimeLab хранится ссылка на объект mContext.

Если сохранить в mContext активность, эта активность никогда не будет уничтожена

уборщиком мусора, потому что ссылка на нее хранится в CrimeLab. Даже

если пользователь покинет активность, она не уничтожается.

 
MyTetra Share v.0.52
Яндекс индекс цитирования