title: Do I really need Content Provider in my application
body: <p>I am creating app that should have offline mode, so previously downloaded data should stored somewhere, the most common way is to store data in <code>SQLite</code> database.    </p>
  
  <p>Mostly <code>SQLite</code> database is used with <code>Content Provider</code> in android. I have clear understanding what is the purpose of content provider (to share data between different apps), but in my case application will never need to share the data with other apps in the system.     </p>
  
  <p><code>Content provider</code> has the similar interface as <code>HTTP</code> request <code>(GET,POST,PUT,DELETE)</code>.<br>
  My idea is to create facade class which can be used like this <code>getAllLatestNews();</code> firstly it will try to get latest data from the internet, if it fails - data from database will be used and if request is successful it also will save retrieved data to the database. This class will be facade for separating different layers of application (not to make requests from activities directly).    </p>
  
  <p>But now I am a little bit puzzled deciding whenever I need <code>Content Provider</code> or not. I can use <code>SQLiteOpenHelper</code> classes to retrieve and save data to the database or even use ORM library to do this.<br>
  At first I wanted to implement <code>REST API Pattern B</code> by <code>Virgil Dobjanschi</code>. But now I am not sure about this, maybe it would be better to create facade for Robospice(in my case, network request in the service) requests and do persistence there ?  </p>
  
  <p>Please share you thoughts about this topic, I would be grateful for any help. </p>
  
  <p><strong>EDIT</strong></p>
  
  <p>I asked this question because I feel that it is not good practice to make requests directly from activities even if they are made in service under the hood, I want to separate different layers of my application in order to make it more flexible and maintainable.</p>