Android app which works in online and offline mode

2020-06-03 09:40发布

问题:

I'm new to Android and and made an application which fetched and post data to server and works fine in online mode. But I want to make it works in offline mode also, when there is no internet connection or network failure. It should also make changes (updates) to the server database when net is available. I have done lots of R & D but didn't get the useful info.

Please someone guide me with some useful steps, sample code (if possible) or any link to make app in offline mode.

回答1:

  • You need to define two modes of your app online and offline
  • Monitor Network Connectivity events in your app to determine offline/online mode, You need to write BroadcastReciever for this.
  • In online mode Connect to your server and exchange whatever data that you need to do at that point.
  • Meanwhile in offline mode store the data persistently if needed


回答2:

What you are asking is actually incredibly complicated.

I have spent a good year of my own time trying to solve this problem and have published my work in the SyncIt project which is at http://forbesmyester.github.io/SyncIt/ .

There is:

  • A local version control system https://github.com/forbesmyester/SyncIt
  • A server component https://github.com/forbesmyester/syncit-server
  • A connection monitoring component https://github.com/forbesmyester/SyncItControl
  • And a basic bootstrap project that will give you a super basic to do list like project which you who be able to use as a basis for your project... https://github.com/forbesmyester/SyncItBootstrap

I suggest that you start reading about the local version control component and then move onto the connection monitoring component.



回答3:

Use SQLite database. Save data in database when there is no internet. Then sync data with server when internet comes back.

http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/



回答4:

You can use SQLite database in your android application. At offline you can save every thing in you local database and when application come with online then you can sync your local database with server database.

For create SQLite local database in android application you can check the following sample codes (sample projects) in github

https://bitbucket.org/kavi707/grocery_items_app/src

Cheers...



回答5:

Here you can not fetch data without internet. But it is possible to use old data. Once you are downloading data from internet store it into database. Here most people suggest SQLite database. My suggestion use anyone database (SQLite or SQLCipher) . After that before uploading your data just insert it into database and post from database. Because once network failure data will not be lost.

Broadcast Receiver:

This broadcast receiver is used to notify you the network changes. Once network is connected write your post code. Maybe here also possible to the network failure. But data still in database so it won't loss.