2011-07-25 45 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

相關問題