1
我的應用程序出現問題 垃圾郵件發送EditText字段後崩潰 如何在執行「DoSearch」之前向代碼添加延遲?EditText監聽器延遲再次執行之前
即當編輯框被編輯的應用程序中有閒置的1秒,聽,如果它的編輯再次 如果屬實,如有虛假等待另一個秒 ,執行DoSearch
我希望你能理解我的處境
et = (EditText) findViewById(R.id.Searchfield);
et.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) { }
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
public void onTextChanged(CharSequence s, int start, int before, int count) {
new DoSearch().execute();
}
});
編輯: 確定我解決了這個問題 我定義爲0 每次的文本編輯改變它被稱爲延遲處理INT SEARCHCOUNT延遲處理程序只有SEARCHCOUNT等於最後
et = (EditText) findViewById(R.id.SearchCoupon);
et.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) { }
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
public void onTextChanged(CharSequence s, int start, int before, int count) {
searchCount++;
SearchHandler.sendMessageDelayed(SearchHandler.obtainMessage(searchCount), 1000);
}
});
private Handler SearchHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if(msg.what == searchCount) {
new DoSearch().execute();
System.out.println("Success" + searchCount + "=" + msg.what);
}
else {
System.out.println(msg.what + " - " + searchCount);
}
}
};
還有就是要提高這個方法的地方在最後延遲處理程序調用執行DoSearch通過檢查?或者它實際上是一種有效的方式?
延遲工作,但它不會取消其他人,當延遲結束時,再次搜索垃圾郵件......或者我使用它錯誤 – Kirma 2012-08-02 11:44:58
我不確定垃圾郵件是什麼意思。但是如果它崩潰了,你可以發佈logcat輸出。 – nandeesh 2012-08-02 11:46:02
我解決了這個問題,有一個地方可以改進這個方法嗎?或者它實際上是一種有效的方式? – Kirma 2012-08-02 12:08:07