Android / Web App离线/在线数据库设置。在两个平台上创建项目

时间:2014-06-25 15:06:06

标签: android mysql sqlite sync

阅读更新1以获取更详细的问题说明。对不起。

我试图弄清楚如何构建同步数据的Android应用和Web应用。 我知道我应该为MySQL数据库创建一个REST API来与Android App同步。 我在同步数据之前创建了一个应用程序,但仅用于android端的检索(SELECT查询)。

我现在想制作一个应用程序/ Web应用程序,它应该在两个平台和同步上创建/更新项目,因此它们都有新的/更新的项目。该应用程序也应该脱机工作。

我曾经为大多数数据库表创建id作为自动增量的关键。现在我有2个数据库,我不知道如何创建这些唯一ID。或者我应该抛弃那些id并使用列的组合作为主键(带时间戳或其他东西)。

希望它有用,英语不是我的母语。

更新1 提出问题: 所以我有一个带有PHP API的MySQL数据库。该API将由Web App和Android App使用。 问题是如何在de android App中处理离线数据创建。如果您依赖于具有MySQL数据库自动增量的id。

示例:创建人员时如何获取该人员的ID(如果MySQL数据库处理ID创建)

提前致谢, Otto Vanluchene

1 个答案:

答案 0 :(得分:0)

你提出的问题是一个非常广泛的问题,有很多选择,但这就是我的做法。

如何处理本地休闲呼叫:

首先,我使用HTTP库来处理我的GET / POST REST API调用。它处理回调并且可以非常有用。

这是我经常使用的那个:

LoopJ's Async HTTP Callback Library

这将处理GET和POST请求,具有许多很酷的功能,如自定义超时,JSON格式,onSuccess()和onFailure()方法等。这个库也有很多工作示例。我已经在我的所有应用中使用过它,并且还没有任何问题!

数据库设置:

您想要创建一个MySQL数据库来存储您的所有数据。您可能想要阅读常见的数据库实践。

API设置

我用PHP编写所有API,但这只是我的偏好。您在此处编写的API将用于您的网络和移动应用中,以保持一致。假设你使用GET,你可以传递一个参数(我通常称之为"回调"),这将决定API将返回什么样的信息块。

例如:

http://www.ottosite.com/otto_api.php?callback=get_users

因此,在您的PHP代码中,您将检查是否callback = get_users,如果是,它将查询数据库中的所有用户,格式化json字符串,然后简单地回显它。

这可能会返回如下内容:

{"status":"success","users":["user1","user2","user3"]}

所以这显然是一个JSON格式的响应,然后在你的应用程序中,当你调用该API时,你只需将响应解析为JSONObject(用户的JSONArray),然后从中获取所需的任何数据。

希望这有帮助。