2010-05-21 3 views
0

Итак, я сделал учебник Notepadv1. Он отлично работал. Нет проблем. Однако мне хотелось бы объяснить некоторые причины, по которым mNoteNumber запоминает последний номер элемента, который я создал.Android Notepadv1 Tutorial - Постоянный номер mNoteNumber?

Так класс начинается следующим образом:

public class Notepadv1 extends ListActivity { 
    private int mNoteNumber = 1; 

Это нормально, я понимаю. Единственный раз, когда используется переменная mNoteNumber, когда вы добавляете элемент создает с этим номером записку, а затем увеличивает его к следующему номеру следующим образом:

private void createNote() { 
String noteName = "Note " + mNoteNumber++; 

Это только две ссылки на переменную mNoteNumber , Когда я нажимаю кнопку «Домой», а затем снова открываю приложение, я добавляю новую заметку, но вместо добавления второй «Заметки 1» она помнит, что последнее примечание, которое я добавил как «Примечание 3», поэтому оно делает «Примечание 4». Поэтому я не понимаю. Сохраняет ли Java/Android последнее состояние переменных?

Если бы кто-нибудь мог дать мне какое-то объяснение, которое было бы здорово СПАСИБО!

ответ

3

Нажатие кнопки «домой» не убивает ваше приложение. Он просто перемещает его на задний план. Когда вы снова нажимаете на значок своего приложения, он перемещает приложение обратно на передний план. Подумайте об этом, как о минимизации и повторном открытии окна в приложении.

Однако вы не можете положиться на это, помня о состоянии таким образом. Когда приложение находится в фоновом режиме, его можно убить, если Android решит, что ему нужно пространство.

Для получения дополнительной информации см. lifecycle documentation.

Если вы хотите гарантировать, что состояние запомнено, вы должны сохранить состояние, как описано в этом документе.

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