所以基本上我需要一个可以上网的应用程序。我自然而然地想到:SQLite和MySQL后端。但我的问题是:我应该采取什么方法?
我不想浪费时间试用/测试这两种方法。请告诉我那些做过这样的项目的人如何处理这个问题。我很确定这种项目很受欢迎。
另外,我如何检查互联网是否可用(同时不会崩溃应用程序),这样我就可以在两种工作方式(离线和在线)之间进行选择?
非常感谢所有帮助。
答案 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)
我做了一个这样的项目。我的方法是使用主要任务记录本地数据库中的所有内容。我有一个后台任务,它接管每个事务并尝试将其上传到后端数据库,它使用状态代码标记每个事务,因为后端接受了它。我使用滑动窗口来判断上传失败的频率。我会尝试一下,然后是两次,然后两次,等待时间加倍,直到我成功或者我达到一小时,此时我无论如何每小时都会再次尝试。这对我们有用,但如果这对你不起作用,你可以设计一些不同的东西。