Как передать данные кнопкой Назад, Kotlin - PullRequest
0 голосов
/ 26 февраля 2020

На сайте есть несколько ответов, но, похоже, мне нужен более четкий ответ.

Предположим, что Activity1 содержит TextView, а Activity2 содержит RecyclerView. Если некоторые данные по Деятельности2 изменены, Мероприятие1 должно быть проинформировано. Существует два способа перехода к действию 1 из занятия 2:

  1. Обычная кнопка на макете.
  2. Кнопка «Назад».

Это выглядит возможным звоните startActivity() с putExtra() внутри onBackPressed(). Однако это не выглядит эффективным для меня, так как это перезагрузит пользовательский интерфейс, перезагрузит данные, перезапустит начальные проверки и т. Д. c. Поэтому я хотел бы послать флаг, чтобы в Activity1 могли быть внесены «только существенные» изменения - путем декодирования флага с помощью оператора if в onStart() Полагаю (?). Как мне добиться этого с помощью обеих кнопок.

Бонусный вопрос:

  1. Можно использовать sharedPreferences для передачи данных.
  2. Можно использовать общие класс для передачи данных.

Использует ли общий класс быстрее, чем sharedPreferences, особенно если мне нужно часто передавать данные? Я читал что-то вроде: «Как только sharedPreferences загружен в ОЗУ, он находится в ОЗУ до закрытия приложения, поэтому он не такой медленный» Кроме того, используется ли общий класс, достаточно надежный для обработки непредвиденного поведения, такого как внезапное закрытие приложения или получение вызова et c.?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

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

0 голосов
/ 26 февраля 2020

Вы можете запустить Activity2, используя startActivityForResult, а затем вызвать setResult, чтобы вернуть значение.

Или вы можете использовать ViewModel (общий класс) для обмена данными между действиями.
Разница между использованием переменной в ViewModel и сохранением данных в SharedPreferences заключается в том, что переменные в ViewModel не сохраняются и информация будет потеряна при закрытии приложения.

...