Мне не нравится intent способ передачи данных между действиями. Это приводит к более дублированному коду. Пассирование данных из активности A-> B и из B-> C, а в некоторых случаях C-> D делает код более подверженным ошибкам. Я хочу передать как примитивный, так и не примитивный тип данных. Как достичь тех, кто не ставит под угрозу качество кода?Как эффективно передавать данные между действиями?
ответ
Вы можете использовать одноэлементный класс для хранения объектов и получить их в другой деятельности, получая экземпляр этого класса одноплодного.
Ref: http://developer.android.com/guide/faq/framework.html#3
Если это простые данные, вы можете использовать SharedPreferences для хранения данных в одном действии и прочитать его в другом действии.
Другие варианты хранения данных в классе Application, но это должна быть только кешированная копия того, что вы храните в общих предпочтениях, так как объект приложения может быть убит в какой-то момент.
То, что я делаю, имеет единственный объект - экземпляр singleton класса PersistData, который обрабатывает сохранение и загрузку (и кэширование в классе Application).
Я использую Кинжал для инъекции этого объекта, когда-либо мне нужно сохранить/прочитать данные.
Вот ссылка на другой ответ, который я сделал на соответствующий вопрос, который делает лучшую работу объяснить, что я предлагаю (жаль, что я тратил время на поиск этого)
best practice to share global variables between activities
В конец вам просто два вызова, чтобы сделать:
в своей деятельности, которая имеет данные, которые вы хотите отправить, у вас есть что-то вроде
persistData.saveUserId(userId);
В своей деятельности вы хотите получить данные у вас есть что-то вроде этого:
String userId = persistData.readUserId();
SharedPreferences использует
- 1. передавать данные между действиями
- 2. Как передавать данные между действиями
- 3. Как передавать большие данные между действиями?
- 4. передавать данные между действиями с намерением
- 5. Как передавать данные между действиями на Android с SharedPreferences?
- 6. Есть ли способ передавать данные между действиями в группе действий?
- 7. Как синхронизировать данные между действиями?
- 8. Как сохранить данные между действиями
- 9. Глобальные данные между действиями
- 10. Хранить данные между действиями
- 11. Отправить данные между действиями
- 12. Данные между действиями
- 13. Как передавать данные между ArrayLists?
- 14. , как передавать данные между Jquery
- 15. Как передавать данные между APIs
- 16. Как передавать данные между viewcontrollers
- 17. Как передавать данные между страницами
- 18. Как передавать данные между видами?
- 19. Как передавать данные между фрагментами?
- 20. Как передавать данные между контроллерами
- 21. Как передавать данные между видами?
- 22. Как передавать данные между различными приложениями Android?
- 23. Как безопасно передавать modelinfo между различными действиями в MVC?
- 24. Android передает данные между действиями
- 25. данные передачи между двумя действиями
- 26. Сохраняйте данные recyclerview между действиями
- 27. Android, отправляющий данные между действиями
- 28. Почему вы не можете передавать List (NOT ArrayList) между действиями?
- 29. Как передать данные игрового центра между действиями?
- 30. Java/android не может передавать массив байтов между действиями
Просто прочитайте это, прежде чем оседать на одноэлементном объекте приложения. Это может сработать для вас, но просто знайте о возможных проблемах. http://www.developerphil.com/dont-store-data-in-the-application-object/ – nPn