2013-09-15 11 views
0

У меня есть 2 действия. Во 2-м действии я вставляю строки в общие настройки с помощью редактора и фиксирую его.Устранение общих сведений о ссылках

, когда я возвращаюсь от 2-го действия к 1-му действию, чтобы увидеть, что строки не отображаются.

Но когда я убью приложение/выход из него и запустил приложение снова, я могу видеть строки в 1-й операции.

Мой вопрос: работает SharedPreferences?

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

1-я деятельность имеет 2 текстовых поля для отображения строк.

второй активность, чтобы войти в 2 строки сохранить и finish(); возврат к 1-ой деятельности

первая активность в Oncreate методе я получать общий прив и дисплей

при переходе на 2-ой деятельности с 1-го по 2-ое я закончить (); 1-я деятельность;

Все еще новые значения не отображаются, но только после повторного открытия приложения.

+0

Сохраните строки в onPause и прочитайте их в onStart. –

+0

Он должен работать, если вы правильно его кодируете. Пожалуйста, напишите код написания и чтения. – Szymon

+0

, так что нет необходимости закрывать приложение, чтобы увидеть обновленные значения? – pantera

ответ

2

, так что нет необходимости закрывать приложение, чтобы увидеть обновленные значения?

Нет, но:

  • Вы должны убедиться, что вы на самом деле перезагрузить ваш пользовательский интерфейс с SharedPreferences в первой деятельности, либо с помощью метода жизненного цикла, что вы уверены, что будет вызываться (например, , onResume()) или с помощью OnSharedPreferenceChangeListener

  • Вы должны быть оба вида деятельности в том же процессе (т.е. удалить android:process атрибуты из манифеста)

This sample project демонстрирует настройки редактирования в одном действии и отображает их в другом действии.

2

Я предполагаю, что ваш код о SharedPreferences работает, потому что иначе вы не увидите те же строки снова после того, как вы убили приложение.

Это все о моменте, чтобы читать и записывать данные в предпочтения. Если вы оставите Activity onPause, это обратный вызов, где нужно записывать данные в предпочтения. Потому что это последний обратный вызов, на который вы можете рассчитывать, чтобы быть запущенным на жизненном цикле. Поскольку вы должны учитывать, что система также может убить вашу активность, а onDestroy не может быть вызвана.

Для чтения из Preferences вы должны использовать onResume в качестве опции по умолчанию. В вашем случае я думаю, что OnStart тоже работает. Но в целом onResume - это путь.

Таким образом, вы всегда пишете/читаете правильно, и ваши действия всегда показывают последние данные.

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