我正在構建一個Android應用,用戶需要在其中選擇一個暱稱。現在,兩個用戶不能有相同的暱稱。我在.net上看到過表單,我們可以驗證特定用戶名的可用性,同時用戶使用Ajax調用鍵入或按下標籤。Android - 用戶名可用性的Ajax風格自動檢查
我的問題是 - 是什麼類似的Android可用。我可以即時查詢我的服務器並驗證暱稱的可用性嗎?
非常感謝您的回覆。如果有任何教程,示例或Android文檔參考,我需要看看,請指導我。
我正在構建一個Android應用,用戶需要在其中選擇一個暱稱。現在,兩個用戶不能有相同的暱稱。我在.net上看到過表單,我們可以驗證特定用戶名的可用性,同時用戶使用Ajax調用鍵入或按下標籤。Android - 用戶名可用性的Ajax風格自動檢查
我的問題是 - 是什麼類似的Android可用。我可以即時查詢我的服務器並驗證暱稱的可用性嗎?
非常感謝您的回覆。如果有任何教程,示例或Android文檔參考,我需要看看,請指導我。
你能查詢與指定的輸入組件(EditText
等),每個按鍵事件當前輸入的用戶名用戶的服務器的數據庫,但可能是相當大量網絡資源,催生了大量的線程來處理:
TextWatcher
您輸入EditText
或任何用戶正在輸入他的名字進入onTextChanged
方法,你會生成一個線程來聯繫你的數據庫沿CharSequence
值發送。來自服務器的響應會輸出一些JSON,可能帶有一個布爾屬性,它表示用戶名是否可用或...
或...
,當你的應用程序啓動(他們必須選擇一個名字吧)之前,請聯繫您的服務器的數據庫,併發送該應用程序是一個響應,其中包含已經拍攝的名稱列表。
這樣,您可以輕鬆地檢查名稱是否在電話本地進行,而不是發送請求進行檢查。
仍然必須總是正確的保存它在服務器端之前檢查綽號的可用性
編輯: 我實現了#2,這似乎是這就是大多數應用程序做註冊一個獨特的名稱(即我見過)
問題#1 - 用戶在1個字母輸入(網線開始) - 用戶enteres另一封信(另一個線程啓動) - 用戶進入第三個字母(另一個線程) - 線程2首先完成,名稱有效,用戶被通知 - 線程1個飾面,名稱是無效的,則通知用戶 - 線3個飾面,名稱是無效的,則通知用戶
螺紋2花4秒 線程1花5秒 線3把5秒
說用戶一直輸入25個字母,有很多你必須跟蹤的名稱是否有效,如果和什麼線程仍在運行等方面等
這種方法似乎有點太乏味乏味這麼簡單的註冊任務,太麻煩了
問題#3 - 需要1個額外的網絡請求
我喜歡這種方法,因爲你可以輕鬆快速地通知用戶,如果他們的名字可沒有任何線程的服務器(取決於你的用戶列表是如何變大)或擔心它會花多長時間檢查
2號簡單,易行,並且可以有隻需要1臺服務器的請求
非常感謝你的答案的機會。你幾乎列出了我所有的選擇。你對第一個是對的。這是一個非常網絡密集的網站。但出於第二和第三,哪一個更好。你有沒有實現過這種功能。如果是,請您詳細說明性能問題。再次感謝。 – SaKet 2010-12-20 22:20:42