當(dāng)EditText輸入最后一個字符時翎冲,再處理業(yè)務(wù)邏輯數(shù)據(jù)

最近項目中垂睬,增加了搜索功能,當(dāng)用戶輸入內(nèi)容時自動請求網(wǎng)絡(luò)處理數(shù)據(jù)抗悍;我們首先想到的是對EditText設(shè)置監(jiān)聽addTextChangedListener驹饺,然后在afterTextChanged方法中進行處理。

這樣能實現(xiàn)功能缴渊,但是當(dāng)用戶輸入abcd等單個字符內(nèi)容時赏壹,就會執(zhí)行好多次afterTextChanged方法,請求多次網(wǎng)絡(luò)衔沼。如果說蝌借,一般輸入的都是中文田柔,比如輸入“中央音樂學(xué)院”查找時,用戶是一次性輸入的骨望,這樣就不會請求多次網(wǎng)絡(luò),但是這時當(dāng)用戶想只查找“中央”兩字時欣舵,把“音樂學(xué)院”四字刪除擎鸠,就會導(dǎo)致請求四次網(wǎng)絡(luò),雖然結(jié)果也是最后一次查找的結(jié)果缘圈,然而前三次的網(wǎng)絡(luò)請求不是多余了嗎劣光,而且如果這四次網(wǎng)絡(luò)請求出現(xiàn)了延遲等問題,可能導(dǎo)致最后顯示的結(jié)果不是最后請求的數(shù)據(jù)糟把。記錄一下本次代碼绢涡。

@Override   
 public void afterTextChanged(Editable s) {  

   lastTime = System.currentTimeMillis();     
   Message message = Message.obtain();      
    message.obj = s.toString();     
   message.what = REQUESTDATA;   
   mHandler.sendMessageDelayed(message, 1000);   
   }
});    

在afterTextChanged方法中得到當(dāng)前的時間并發(fā)送延遲消息

long lastTime = 0, currentTime = 0;
private final int REQUESTDATA = 1;
private Handler mHandler = new Handler() {  
  @Override    
  public void handleMessage(Message msg) {  
  super.handleMessage(msg);     
   switch (msg.what) {          
      case REQUESTDATA:           
         currentTime = System.currentTimeMillis();    
          String s = (String) msg.obj;        
          if (currentTime - lastTime >= 1000) {         
               LogPrint.logILsj(TAG, "大于--:");     
          } else {   
               LogPrint.logILsj(TAG, "小于");    
          }          
    break;      
    } 
 }};

接收到消息后,判斷當(dāng)前的時間和最后一次輸入字符的時間間隔遣疯,如果大于1000毫秒在處理數(shù)據(jù)雄可,這時就是用戶輸入最后一個字符的請求。如果非要說用戶輸入的很慢缠犀,超過了1000毫秒呢数苫,這個不做辯論,自己處理就好辨液。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虐急,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子滔迈,更是在濱河造成了極大的恐慌止吁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燎悍,死亡現(xiàn)場離奇詭異敬惦,居然都是意外死亡,警方通過查閱死者的電腦和手機间涵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門仁热,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人勾哩,你說我怎么就攤上這事抗蠢。” “怎么了思劳?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵迅矛,是天一觀的道長。 經(jīng)常有香客問我潜叛,道長秽褒,這世上最難降的妖魔是什么壶硅? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮销斟,結(jié)果婚禮上庐椒,老公的妹妹穿的比我還像新娘。我一直安慰自己蚂踊,他們只是感情好约谈,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著犁钟,像睡著了一般棱诱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涝动,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天迈勋,我揣著相機與錄音,去河邊找鬼醋粟。 笑死靡菇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的昔穴。 我是一名探鬼主播镰官,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吗货!你這毒婦竟也來了泳唠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤宙搬,失蹤者是張志新(化名)和其女友劉穎笨腥,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勇垛,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡脖母,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了闲孤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谆级。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖讼积,靈堂內(nèi)的尸體忽然破棺而出肥照,到底是詐尸還是另有隱情,我是刑警寧澤勤众,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布舆绎,位于F島的核電站,受9級特大地震影響们颜,放射性物質(zhì)發(fā)生泄漏吕朵。R本人自食惡果不足惜猎醇,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望努溃。 院中可真熱鬧硫嘶,春花似錦、人聲如沸梧税。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贡蓖。三九已至,卻和暖如春煌茬,著一層夾襖步出監(jiān)牢的瞬間斥铺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工坛善, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晾蜘,地道東北人。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓眠屎,卻偏偏與公主長得像剔交,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子改衩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理岖常,服務(wù)發(fā)現(xiàn),斷路器葫督,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法竭鞍,類相關(guān)的語法,內(nèi)部類的語法橄镜,繼承相關(guān)的語法偎快,異常的語法,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • 《裕語言》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 25,993評論 5 19
  • 文/洪生鵬 1 幾年前,我在某集團IT部門擔(dān)任技術(shù)員時姊氓,公司每階段都有技術(shù)分享大會丐怯,有次安排了一個架構(gòu)師對公司員工...
    洪生鵬閱讀 1,552評論 9 17