Question: I want to know how i can make my app work in offline mode and store the data on a local database on the android device. 

I am using mongodb database and fetching the data by using JSON Parsing.

What should i use to make my app run in offline mode and also update the changes made on the server ?

Which tools should i use ,also which is the best and easy method to implement this?

Thanks in advance.

Answer: 
This question is a bit older now, but I'd like to add what I believe is a good architecture approach to solving this.

Take a look at the tech talk given by Yigit and Adam at the Android Dev summit. <https://plus.google.com/+AndroidDevelopers/posts/3C4GPowmWLb>

Seems the core components are:

* Job Scheduler/Queue, via <https://github.com/yigit/android-priority-jobqueue>
* DBFlow to make interaction with the SQLite database easier: <https://github.com/Raizlabs/DBFlow>
* And an EventBus <https://github.com/greenrobot/EventBus> to easily broadcast when the actual jobs complete (so the UI and other components can be notified).

Those 3 together get you most of what you will probably need. Their tech talk (first link above) really details these things better, and there's a final example application you can take a look at as well: <https://github.com/yigit/dev-summit-architecture-demo>
If you have an option, you can go for couchdb or couchbase which provide couchlite for android and sync is taken care by itself. 

you can also refer this thread here [SQLite on Android and MongoDB with synchronization](https://stackoverflow.com/questions/13295960/sqlite-on-android-and-mongodb-with-synchronization)