編輯:
下面給出的說明,我會跳過「...同步的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應用程序,它應該達到什麼,我會修改我的答案是更正確和具體。
來源
2011-07-25 12:46:44
dbm
確定這裏是我的Android應用程序要做的事情:1)要求用戶在這些Edittext字段中輸入兩個值,然後按提交按鈕。我已經在Android中創建的java文件,因爲它很容易2)點擊提交按鈕時,我需要調用一個以.NET創建的Web服務(REST或SOAP都會這樣做)我的數據庫表中特定列的所有條目...所以現在我只想讓別人告訴我如何在VS2008中首先創建自己的SQL數據庫,編寫代碼以公開它並再次編寫Android代碼來調用它.u明白了嗎? –
是的,現在我明白了,謝謝澄清:-)。我認爲這是一個比我們從一開始就意識到的更大的事情。我建議你把你的項目分解成更小的任務。我看到至少有三個主要任務需要在更小的可行任務中細分):1)在Web服務器上創建數據庫並用一些測試數據填充它。 2)創建您的Web服務。我會建議基於這樣的REST,它更輕鬆,更輕。驗證Web服務是否按照您的要求工作。 3)編寫你的Android應用程序。 – dbm
不幸的是,我不太熟悉微軟的產品,因此我無法幫助您瞭解如何在Visual Studio中創建數據庫(我假設您需要它是MS SQL Server數據庫,否則您不會指定它很清楚)。儘管如此,必須有大量的教程和「how-to's」。 – dbm