2017-01-27 21 views
2

我想用在編輯文本更改文本輸入如下異步任務執行的搜索服務異步任務執行搜索服務:如何使用不斷變化的文字輸入

et_search.addTextChangedListener(new TextWatcher() { 

      public void afterTextChanged(Editable s) { 

       //my asyncTask 

       } 
      } 

      public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      } 

      public void onTextChanged(CharSequence s, int start, int before, int count) { 
      } 
     }); 

,但我想停止當前正在運行的異步對更改文本

回答

1

執行新的可以取消運行aynctask要將 第一初始化aynctask類全球

private YourAsyncTask mTask; 

,並在您editetxt首先檢查你的異步類不爲空比以前取消類,然後再執行

et_search.addTextChangedListener(new TextWatcher() { 

     public void afterTextChanged(Editable s) { 

      //my asyncTask 
      if(mtask != null){ 
       mTask.cancel(true); 
       } 
      mTask = new YourAsyncTask().execute(et_search.getText().toString()); 
      } 
     } 

     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     } 

     public void onTextChanged(CharSequence s, int start, int before, int count) { 
     } 
    }); 

你可以調用異步類onTextChanged()方法