I'm a bit confused in the question, if it's better to use ContentProvider
or Database
. Or it makes no difference if I don't want to share any data with other applications.
If I've understood it right, content providers based on SQLite
DBs and it's also possible that content of them is only accessable for my application.
Can you give some explanations?
Thank you very much,
Mur
A content provider behaves very much like a database where you can query it, edit its content, as well as add or delete content using insert(), update(), delete(), and query() methods. In most cases this data is stored in an SQlite database.
In Android, Content Providers are a very important component that serves the purpose of a relational database to store the data of applications.
What is the exact difference between "Content-Provider" and "SQLite Database"? ContentProvider is a facade -- an API you can implement that exposes databases to other processes. It can be implemented in a way where the data is stored in a SQLite database, but it does not have to be.
A content provider can be used to manage access to a variety of data storage sources, including both structured data, such as a SQLite relational database, or unstructured data such as image files. For more information on the types of storage available on Android, see Storage options, as well as Designing data storage.
There certainly are worthwhile problems for which a provider is a solution, particularly for cross-app data publishing. For example, you need to use a content provider to supply search suggestions to a Quick Search Box.
However, for internal use within an application, I am not a fan. The benefits IMHO are outweighed by the costs (e.g., reduced flexibility, additional overhead).
If you do implement a content provider, bear in mind that they are accessible by other applications by default. You need to include android:exported="false"
in the <provider>
element to make them private to your app.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With