2016-10-04 42 views
2

我建立一個應用程序,其中用戶必須登錄。如何通過多次登錄來解決錯誤?

但是,當用戶點擊登錄按鈕有時他必須等待來自服務器的響應(這一時期也許是3,4或5秒),問題是,當他在等待,如果他在登錄按鈕上再次點擊,則當來自服務器的數據到來時,他將登錄應用程序兩次

我可以用Singleton解決這個問題,或者有其他解決方案嗎?

在此先感謝。

+2

顯示加載,或禁用點擊直到數據已被提取 – hrskrs

回答

2

您可以簡單地在用戶單擊後禁用登錄按鈕(當他等待服務器響應時)。

3

我通常禁用按鈕,當用戶點擊,然後當按鈕完成操作啓用按鈕。

例子:

Button signin = (Button) findViewById(R.id.login); 
signin.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
      signin.setClickable(false); 

      //make your logic 

      signin.setClickable(true); 
    } 
}); 

如果你調用一個Asyncktask按鈕裏面,你可以啓用onPostExecute()

1

按鈕您可以使用請求管理器來控制/取消請求。 RequestManager.getInstance(getActivity())。cancelAll(REQUEST_TAG);

這將取消所有舊請求&只會給最新的一個結果。