2014-02-22 155 views
0

所以基本上我需要一个应用程序,可以使互联网可用或不可用。所以当然我想:SQLite和MySQL后端。但我的问题是:我应该采取什么方法?与本地数据库和远程数据库的Android项目

  • 专门用于SQLite,并在按钮上点击上传工作到服务器数据库?
  • 或者喜欢的东西混合:当网络不可用工作在SQLite的,当互联网上的MySQL可用的工作(在上传时,互联网是离线完成前期工作)?
  • 或者其他方式可能?

我不想浪费时间试用/测试两种方法。请告诉我那些做这样的项目的人如何解决这个问题。我很确定这种项目是广泛遇到的。

而且我怎么检查,看看是否互联网接入(而不是崩溃的应用程序),这样我就可以在2种工作方式之间进行选择(离线和在线)?

所有帮助将不胜感激。

+0

我建议你使用SQLite和后端产生更新的数据库从应用程序下载的一些脚本工作,这可能是easieast办法(已经完成,在我的一个应用程序的),但很难知道什么是最适合你的cz我们不知道你的应用程序是如何工作的以及你的数据库在应用程序中的用途是什么,如果你能更好地解释你的应用程序会更容易帮助 – GhostDerfel

+0

因此,android应用程序的目的是收集销售来自用户的信息,当然,这些信息应该集中在远程服务器上。但在某些情况下,有些用户只使用wifi互联网,所以他们在输入报告时一直没有互联网。他们需要填写他们访问的每个客户的报告。其中一些在现场有wifi,但有些则没有。所以我的用户必须能够在应用程序中输入他的数据,而不管他把它放在本地还是放在远程服务器上。这不是他的担心。该应用程序必须具有内置的逻辑以实现同步 – user1137313

+0

您是否知道此类应用程序类型或教程的任何演示? – user1137313

回答

0

我想说的sqlite的离线工作,然后当你感觉到一个互联网连接的同步跟进。 Checking for network是相当平凡的。

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

因此,这些步骤将是:1.启动应用程序,2.检查SQLite数据库是否存在,然后创建它,3.如果有Internet,则下载用户表以便能够验证用户,如果没有Internet ...然后做什么? – user1137313

0

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

相关问题