2011-07-25 41 views
0

我已经在Android中使用Eclipse创建了两个EditText字段和一个提交按钮。现在我需要开发一个Web服务,最好在.NET中公开我的数据库。我必须说,在发布之前,我确实看到过[http://www.hanselman.com/blog/CreatingAnODataAPIForStackOverflowIncludingXMLAndJSONIn30Minutes.aspx],但我不知道如何使用WCF服务,而是更喜欢REST或SOAP。将sql数据库作为web服务公开,以便从android手机访问

我现在只需要调用一个按钮的点击,将得到数据库的特定列的值的列表在ListView有一个复选框在Android

的仿真器的Web服务

请谁能告诉我我应该如何去做这件事?

感谢

回答

2

编辑:

下面给出的说明,我会跳过“...同步的SQLiteDatabase ......”在Android后台服务的一部分(如仍有不适似乎是在目标Android设备上进行同步或缓存的任何内容)。我会让后台服务直接调用你的web服务。

这里的重要事情是在工作线程中执行来自Android应用程序的实际HTTP请求。如果从UI线程(a.k.a.默认线程或主线程)调用它,那么Web服务很可能不会足够快地回答以保持应用程序的活动状态,Android会将其视为无响应的应用程序。

Android Service默认情况下会在调用者运行的相同线程中运行(很可能是UI线程)。你可以看看IntentService,它管理着你所有的线程。

但在此之前,我认为您需要设计您的数据库并整理您的Web服务。不幸的是,我对微软的产品有些生疏,以便为您提供有用的帮助。但我认为必须有大量的教程和“how-to”。

产地:

Wikipedia拥有的REST应该是什么一个suprizingly很好的定义。这个概念也很好地映射到Android ContentProvider's concept

假设你想公开一个Web服务器上的数据库,我想我会编写一个简单的基于REST的Web服务(在你的Web服务器上),它允许你访问应用程序所需的表和列(不再需要,不少于)。

默认情况下,我可能会继续编写一个定期同步SQLite数据库(仍然在Android上)的后台服务(在Android上),也许通过ContentProvider(注意:ContentProviders不是与数据库通信的唯一方法,实际上我甚至会说与数据库通信甚至不是ContentProvider的主要功能)。

最后,我会在同步结束时广播一个通知(仍在Android上),以便任何(Android)客户端知道何时自动从SQLite数据库请求新数据。也许这种新鲜数据的获取也可以通过按下UI中的按钮来触发,以便允许用户触发手动更新。

如果你写更多关于你的Android应用程序,它应该达到什么,我会修改我的答案是更正确和具体。

+0

确定这里是我的Android应用程序要做的事情:1)要求用户在这些Edittext字段中输入两个值,然后按提交按钮。我已经在Android中创建的java文件,因为它很容易2)点击提交按钮时,我需要调用一个以.NET创建的Web服务(REST或SOAP都会这样做)我的数据库表中特定列的所有条目...所以现在我只想让别人告诉我如何在VS2008中首先创建自己的SQL数据库,编写代码以公开它并再次编写Android代码来调用它.u明白了吗? –

+0

是的,现在我明白了,谢谢澄清:-)。我认为这是一个比我们从一开始就意识到的更大的事情。我建议你把你的项目分解成更小的任务。我看到至少有三个主要任务需要在更小的可行任务中细分):1)在Web服务器上创建数据库并用一些测试数据填充它。 2)创建您的Web服务。我会建议基于这样的REST,它更轻松,更轻。验证Web服务是否按照您的要求工作。 3)编写你的Android应用程序。 – dbm

+0

不幸的是,我不太熟悉微软的产品,因此我无法帮助您了解如何在Visual Studio中创建数据库(我假设您需要它是MS SQL Server数据库,否则您不会指定它很清楚)。尽管如此,必须有大量的教程和“how-to's”。 – dbm

相关问题