2013-11-30 2 views
2

В моем приложении я не переопределил какие-либо связанные с государством методы, такие как onPause(), onStop(), но все же моя деятельность автоматически восстанавливает предыдущее состояние на каком-либо устройстве, но в других устройствах оно не восстанавливается.Функция восстановления активности Android Android

Почему это происходит?

Вот код:

new CountDownTimer(30000, 1000) { 

public void onTick(long millisUntilFinished) { 
     mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
} 

public void onFinish() { 
    mTextField.setText("done!"); 
} 
}.start(); 
+1

Что вы наделали, покажите код .. –

+0

@HarishKoona Его действие на всю деятельность. Какой код я должен вам показать? – KousiK

+0

@HarishKoona Я добавил код, любезно проверяю и отвечаю – KousiK

ответ

1

Это все описано в this части руководства разработчика Android.

По умолчанию система использует состояние экземпляра Bundle для сохранения информации о каждом объекте View в макете активности (например, текстовое значение, введенное в объект EditText). Итак, если ваш экземпляр активности уничтожен и воссоздан, состояние макета восстанавливается в прежнее состояние без какого-либо кода, требуемого вами.

Таким образом, это означает, что состояние просмотров сохраняется автоматически. Это происходит не всегда, например:

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

+0

. Да, он делает то же, что и вы, но в некоторых других телефонах его не работает, даже когда нажата кнопка дома или во время входящего вызова. – KousiK

+0

Это зависит от версии Android или чего-то еще общего? – Szymon

+0

Да, версии устройств различны ... – KousiK

0

Если вы нажмете кнопку «Главная», а затем откройте приложение, ваше приложение будет восстановлено, и таймер будет работать из соответствующего места (при нажатии кнопки «Главная» - приложение работает в фоновом режиме). Но если вы нажмете кнопку «Назад» (приложение закончено), а затем откройте приложение - оно будет воссоздано/перезапущено, и таймер начнется с начала.

+0

В моем телефоне работает нормально, но в другом телефоне, если я нажимаю кнопка «домой» или вызов идет, тогда таймер не работает ... – KousiK

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