eshcherbin / save-the-moment

SPbAU educational Android project
0 stars 0 forks source link

Как скачивать момент для просмотра? #11

Closed eshcherbin closed 7 years ago

eshcherbin commented 7 years ago

Допустим, пользователь нажал на какой-то момент в списке, и надо открыть его просмотр. Для этого нужно обратиться к базе данных и скачать всю информацию о моменте + его теги. Делать это в главном потоке не хочется по понятным причинам. Разумно ли будет сделать AsyncTask для этого дела, или есть более подходящий рецепт?

Если делать AsyncTask, то не будет ли проблем, если пользователь успеет нажать на несколько моментов в списке?

krinkinmu commented 7 years ago
  1. Передать в Intent-е UUID Moment-а, который очевидно должен быть доступен (раз есть список, и раз он что-то показывает, значит где-то есть Cursor, а из него можно достать UUID);
  2. По UUID-у при старте Activity искать нужный Moment и все его теги с помощью своего Loader-а (в этот раз нужен именно свой, а не просто CursorLoader, просто потому что нам нужно сделать несколько запросов к БД и вернуть один Moment, хотя есть альтернативный вариант - реализовать свой Cursor, но это отдельная история);
  3. Нарисовать, когда запрос выполнится, обращение к базе данных занимает много времени с точки зрения CPU, но с точки зрения пользователя это не так уж и много.

Более интересный вопрос, а стоит ли отображать теги прямо в списке (там где все моменты показываются)? Если да, то в этом случае ContentProvider, о котором я говорил и стандартные Loader-ы и Adapter-ы не подойдут, надо разбираться как это сделать.