рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдПрдХ рдмрд╛рд░ рдЬрдм рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдПрдХ рд╕реВрдЪреА рджреГрд╢реНрдп рдХрд╛рд░реНрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдирдиреНрджрд┐рдд рд╣реЛрдиреЗ рджреЗрдВ рдФрд░ рдПрдХ рд╕рдорд╛рдЪрд╛рд░ рдлрд╝реАрдб рдореЗрдВ рджреЗрдЦреЗрдВ:
- рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб, рд▓рд╛рдареА рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде;
- рд▓реЗрдЦрдХреЛрдВ рдпрд╛ рдЯреИрдЧ рдХреЗ рдХрд╛рд░реНрдб, рдПрдХ рдмрдбрд╝реЗ "рд╕рджрд╕реНрдпрддрд╛" рдмрдЯрди рдХреЗ рд╕рд╛рдеред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдмрдбрд╝реЗ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдирд╛ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд▓реНрдкрдиреАрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдмреБрд░рд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЗрддрдирд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧрд╛ред

рджреВрд╕рд░реА рдХрдард┐рдирд╛рдИ рдпрд╣ рдереА рдХрд┐ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реВрдЪреА рдПрдХрддреНрд░ рдХреА рдЬрд╛рдиреА рдереАред

рдЦреИрд░, рддрд╛рдХрд┐ рдЬреАрд╡рди рд╢рд╣рдж рдХреА рддрд░рд╣ рди рд▓рдЧреЗ, рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдХреЛ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
API рд╕реЗ рд▓реЗрдХрд░ ListView рддрдХ
Google I / O 2010 рдореЗрдВ Virgil Dobjanschi рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╣ рдмрддрд╛рдпрд╛ рдХрд┐ REST API рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдмрд╣реБрдд рдкрд╣рд▓рд╛ рдкреИрдЯрд░реНрди рдкрдврд╝рддрд╛ рд╣реИ:
- рдЧрддрд┐рд╡рд┐рдзрд┐ рдРрд╕реА рд╕реЗрд╡рд╛ рдмрдирд╛рддреА рд╣реИ рдЬреЛ REST API рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ;
- рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреА рд╣реИ рдФрд░ рдХрдиреНрдЯреИрдВрдЯрдкреНрд░реЙрдЗрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрддреА рд╣реИ;
- рдЧрддрд┐рд╡рд┐рдзрд┐ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ рдФрд░ рджреГрд╢реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд╣реИред
UPD рдпрд╣рд╛рдВ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╣реЛрд▓рд┐рд╡рд░ рдЙрдареА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╢рдмреНрдж рдХреЛ "рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ" рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ - рдпрд╣ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╣рдо рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ REST рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбрд╛рд▓реЗрдВ, рдлрд╝реАрдб рдореЗрдВ рдирдП рдбреЗрдЯрд╛ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред рд▓реЗрдХрд┐рди, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
- рдХрд╛рд░реНрдбреЛрдВ рдХреА рд╕реВрдЪреА рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ?
- рдЯреЗрдк рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреИрд╕реЗ рдПрдХрддреНрд░ рдХрд░реЗрдВ?
рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рд░рд▓ рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рд╕рдорд╛рдзрд╛рди рдЖрд╕рд╛рдиреА рд╕реЗ Google рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЗрддрд╛ рд╣реВрдВред
рдХрд╛рд░реНрдб рд╕реВрдЪреА
рдПрдбрд╛рдкреНрдЯрд░ рдореЗрдВ, рд╣рдо рддрд░реАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
@Override int getViewTypeCount() {
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрджреНрднреБрдд
CursorAdapter
рд╡рд░реНрдЧ рдЕрдкрдиреЗ рдЖрдк рд╣реА рд╕рдм рдХреБрдЫ рдХрд░ рджреЗрдЧрд╛: рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╢реНрдп рдХреИрд╢ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдЧрд╛, рдпрд╣ рдкрддрд╛
VIEW_TYPE_COLUMN
рдХрд┐ рдХреНрдпрд╛ рдирдП рдпрд╛ рдкреБрд░рд╛рдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдХрд░реНрд╕рд░ рдореЗрдВ
VIEW_TYPE_COLUMN
рдХреЙрд▓рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдЯреЗрдк рдХреЗ рд▓рд┐рдП SQL рдХреНрд╡реЗрд░реА рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ
рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЯреЗрдмрд▓ рд╣реЛрдиреЗ рджреЗрдВ:
- рд╡реАрдбрд┐рдпреЛ - рдлрд╝реАрдб рдХреЗ рд▓рд┐рдП рд╡реАрдбрд┐рдпреЛ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред
рдХреЙрд▓рдо рдЖрдИрдбреА, рд╢реАрд░реНрд╖рдХ, рдЪрд┐рддреНрд░, рдЕрджреНрдпрддрдиред - рд▓реЗрдЦрдХ, рдЯреИрдЧ - рдЙрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрдк рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ (рдПрдХ рд╕реЗ рдПрдХ рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)ред
рдХреЙрд▓рдо рдЖрдИрдбреА, рдирд╛рдо, рдЪрд┐рддреНрд░, рдЕрджреНрдпрддрдиред
рдХреБрд▓, рдЖрдкрдХреЛ рдПрдХ рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓рдо рд▓реМрдЯрд╛рддреА рд╣реИ:
рд╕реНрддрдВрдн | рд╡реАрдбрд┐рдпреЛ | рд▓реЗрдЦрдХ | рдЯреИрдЧ | рдЯрд┐рдкреНрдкрдгреА |
---|
рдЖрдИрдбреА | video_id | author_id | tag_id | рдЗрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА |
---|
view_type | рд╡реАрдбрд┐рдпреЛ | рд╕рджрд╕реНрдпрддрд╛ | рд╕рджрд╕реНрдпрддрд╛ | рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдб рдХрд╛ рдкреНрд░рдХрд╛рд░ |
---|
content_type | рд╡реАрдбрд┐рдпреЛ | рд▓реЗрдЦрдХреЛрдВ | рдЯреИрдЧ | рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ - рдпрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо, рдпрджрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ |
---|
рд╢реАрд░реНрд╖рдХ | video_title | рд╢реВрдиреНрдп | рд╢реВрдиреНрдп | рд╡реАрдбрд┐рдпреЛ рд╢реАрд░реНрд╖рдХ |
---|
рдирд╛рдо | рд╢реВрдиреНрдп | AUTHOR_NAME | TAG_NAME | рд▓реЗрдЦрдХ рдХрд╛ рдирд╛рдо рдпрд╛ рдЯреИрдЧ рдирд╛рдо |
---|
рдЪрд┐рддреНрд░ | рд▓рд┐рдВрдХ | рд▓рд┐рдВрдХ | рд▓рд┐рдВрдХ | рддрд╕реНрд╡реАрд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ |
---|
рдЕрджреНрдпрддрди | рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк | рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк | рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк | рд╕рд░реНрд╡рд░ рдЕрджреНрдпрддрди рд╕рдордп |
---|
рдореИрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред
- view_type - рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реЗрдЦрдХреЛрдВ рдФрд░ рдЯреИрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рдХрд╛рд░ рд╕рдорд╛рди рд╣реИред
- content_type - рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ред рд▓реЗрдЦрдХ рдФрд░ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд▓рдЧ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдпрд╛ рд╡рд╛рдВрдЫрд┐рдд рдПрдкреАрдЖрдИ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рд╢реАрд░реНрд╖рдХ, рдирд╛рдо рдФрд░ рдЪрд┐рддреНрд░ - рддрд╛рд▓рд┐рдХрд╛ рдХреЙрд▓рдо рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
- рдЕрджреНрдпрддрди - рд╡рд╣ рдлрд╝реАрд▓реНрдб рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
Sqlite рдореЗрдВ, рдХреНрд╡реЗрд░реА рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
SELECT 0 as view_type, 'videos' as content_type, title, NULL as name, picture, updated FROM videos UNION ALL SELECT 1 as view_type, 'authors' as content_type, NULL as title, name, picture, updated FROM authors UNION ALL SELECT 1 as view_type, 'tags' as content_type, NULL as title, name, picture, updated FROM tags ORDER BY updated
рдмреЗрд╢рдХ, рдЖрдк "рд╣рд╛рде рд╕реЗ" рдЗрд╕ рддрд░рд╣ рдХреА рдХреНрд╡реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди
SQLiteQueryBuilder рдореЗрдВ рдереЛрдбрд╝реА рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реА рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗред
рдЗрд╕рд▓рд┐рдП, рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣рдорд╛рд░реЗ ContentProvider рд╕реЗ рдлрд╝реАрдб рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реА рд╣реИ:
Cursor c = getContext().getContentResolver().query(Uri.parse("content://MyProvider/feed/"));
рдЙрд╕реА рд╕рдордп,
MyProvider.query
рд╡рд┐рдзрд┐ рдореЗрдВ,
MyProvider.query
рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЙрд░реА рдЯреЗрдк рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ "рдмреБрджреНрдзрд┐рдорд╛рди" рдХреНрд╡реЗрд░реА рдирд┐рд░реНрдорд╛рдг рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред
Cursor query(Uri contentUri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { if (isFeedUri(contentUri)) return buildFeedUri();
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐
content://MyProvider/feed/
рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛
content://MyProvider/feed/
рд╣рдорд╛рд░рд╛ ContentProvider UNION рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдбреЙрдкреНрдЯрд░ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИред
рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрдпрд╛ рд╣реИ? рд╣рдо рдПрдкреАрдЖрдИ рд╡реАрдбрд┐рдпреЛ рдХреЗ рджреВрд╕рд░реЗ рдкреГрд╖реНрда рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛, рд▓реЙрдЧреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реВрдЪреА рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
рдмрд┐рдВрджреБ
рд▓реЛрдбрд░ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ
@Override public Loader<Cursor> onCreateLoader(int loaderId, Bundle params) { return new CursorLoader( getContext(), Uri.parse("content://MyContentProvider/feed/"), ... ); }
рдЬрдм рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд┐рд╕реА ContentProvider рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ, CursorLoader рдПрдХ ContentObserver рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ Uri
content://MyProvider/feed/
рд▓рд┐рдП рджреЗрдЦрддрд╛
content://MyProvider/feed/
; рдЬрдм рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рд╕рд░реНрд╡рд░ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рд╣реЗрдЬрддреА рд╣реИ, рддреЛ ContentProvider рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп Uri рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕реВрдЪрдирд╛ рджреЗрддрд╛ рд╣реИ,
content://MyProvider/videos/
ред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣рд▓ рдХрд░реЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдореЗрд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдпрд╣ рдХреЛрдб рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдлрд╝реАрдб рдореЗрдВ рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕реВрдЪрдирд╛ рдкреНрд░рджрд╛рддрд╛ рдкрд░ рдкрдбрд╝рддрд╛ рд╣реИ) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ:
getContext.getContentResolver().notifyChange(Uri.parse("content://MyProvider/feed/", null));
рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди
- MergeCursor - рдХрд░реНрд╕рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХрд░реНрд╕рд░ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИ, рдЬрдм рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдХрд░реНрд╕рд░ рд╕реЗ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рджреВрд╕рд░рд╛, рдЖрджрд┐ред
рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдЕрдиреБрд░реЛрдз рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдХреНрд░рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдХреЛрдб рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред - MatrixCursor - рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдореЗрдВ рдХрд░реНрд╕рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред MergeCursor + рдЫрдБрдЯрд╛рдИ + MatrixCursor - рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред