I have several activity (within the same Application) that must have the database. What is the best pattern to implement this ? Will I require a content provider even when all activities fit in with exactly the same application?
Which activity must have the duty for frequent lowering and raising the database ?
Your two choices are Content Provider or simply making use of your own database abstraction layer. This content provider is an easy method to visit as stated, if you want other applications to talk about your computer data or if you want to hook into various areas of Android (such as the Quick Search framework). It shouldn't be tied into a task - must be considered a separate class that you simply import and employ.
The OReilly Android programming book includes a chapter which demonstrates both approaches, its a great read.
Not essential. You just need to produce a Content Provider if you would like some exterior application to gain access to your computer data.