2016-02-15 2 views
0

Я пишу приложение для Android, и я исхожу из фона C++, но похоже, что никакой явной обработки памяти нет. Естественно, я беспокоюсь об утечке памяти, поэтому мне интересно, как обрабатывается память на Android.Как память обрабатывается в Android?

+1

«Мне интересно, как память обрабатывается на Android» - пожалуйста, ** ** более конкретным, так как это слишком широко. Есть целые главы книги по управлению памятью в Linux и Android. – CommonsWare

+0

Я предполагаю, что когда приложение закрыто, используя onStop(). В частности, мне интересно, автоматически ли освобождается память для переменных, когда приложение переводится в режим ожидания, или если оно сохраняется до тех пор, пока приложение не будет закрыто навсегда. Другими словами, могу ли я использовать переменные, которые были установлены во время активного режима во время работы приложения в режиме ожидания? –

+0

Это будет зависеть от того, какие «переменные» вы имеете в виду и что означает «закрыто навсегда». «Я предполагаю, что когда приложение закрывается с помощью onStop()». - нет. 'onStop()' является [обратным методом жизненного цикла активности] (http://developer.android.com/guide/components/activities.html#Lifecycle). Он вызывается, когда действие останавливается (т. Е. Оно больше не видно). – CommonsWare

ответ

0

Нет необходимости в явной обработке памяти, поскольку garbage collector позаботится о переменных, которые больше не используются.

Чтобы понять функцию onStop(), вы должны взглянуть на activity lifecircle. Там вы можете видеть, что активность (также переменная) все еще существует после вызова onStop(). Если приложение с более высоким приоритетом (например, приложение, отображаемое на дисплее) нуждается в большем объеме памяти или ваше приложение закрыто (вызывается onDestroyed()), тогда ваша переменная автоматически будет уничтожена и память будет освобождена.

Смежные вопросы