带有本地数据库和远程数据库的Android项目

时间:2014-02-22 02:11:15

标签: android mysql android-sqlite

所以基本上我需要一个可以上网的应用程序。我自然而然地想到:SQLite和MySQL后端。但我的问题是:我应该采取什么方法?

  • 专门在SQLite上工作,并在按钮上单击UPLOAD工作到服务器数据库?
  • 或者混合以下内容:当互联网不可用时,可以在SQLite上工作,当互联网可用时可以使用MySQL(在上传以前的互联网工作时完成的工作)?
  • 或者其他一些方式呢?

我不想浪费时间试用/测试这两种方法。请告诉我那些做过这样的项目的人如何处理这个问题。我很确定这种项目很受欢迎。

另外,我如何检查互联网是否可用(同时不会崩溃应用程序),这样我就可以在两种工作方式(离线和在线)之间进行选择?

非常感谢所有帮助。

2 个答案:

答案 0 :(得分:0)

我会说在离线sqlite上工作,然后当你感觉到互联网连接同步时。 Checking for network非常简单。

ConnectivityManager connMgr = (ConnectivityManager) 
    getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
    // sync data
} 

答案 1 :(得分:0)

我做了一个这样的项目。我的方法是使用主要任务记录本地数据库中的所有内容。我有一个后台任务,它接管每个事务并尝试将其上传到后端数据库,它使用状态代码标记每个事务,因为后端接受了它。我使用滑动窗口来判断上传失败的频率。我会尝试一下,然后是两次,然后两次,等待时间加倍,直到我成功或者我达到一小时,此时我无论如何每小时都会再次尝试。这对我们有用,但如果这对你不起作用,你可以设计一些不同的东西。