Tytuł stanowi podsumowanie mojego pytania, ale aby wyjaśnić w zasadzie to, co chcę zrozumieć, dlaczego projektanci Androida chcą, aby aplikacje, które muszą współpracować z udostępnionymi danymi, korzystały z dostawcy treści, a nie tylko bezpośrednio uzyskiwały dostęp do bazy danych SQLite?
Jedynym powodem, dla którego mogę myśleć o bezpieczeństwie, jest to, że do niektórych plików można uzyskać dostęp tylko z określonych procesów iw ten sposób dostawca treści jest strażnikiem, który zapewnia każdej aplikacji odpowiednie uprawnienia przed zezwoleniem na odczyt i / lub zapis do pliku bazy danych. Czy to jest główny powód, dla którego utworzono ContentProvider?
Wyodrębnia
ContentProvider
również całą komunikację między procesami, która jest wymagana do komunikacji z aplikacjami innych firm. Konieczność samodzielnego napisania tego kodu byłaby ogromnym bólem.źródło
ContentProvider to także abstrakcja, która ukrywa szczegóły dotyczące sposobu przechowywania / generowania danych. Na przykład w jednej z moich aplikacji mam dostawcę treści, który zwraca obrazy PNG. Te obrazy nie są nigdzie przechowywane, są generowane na żądanie.
źródło