Android 当我使用 Handler 更新时 OnItemClickListener 没有触发 UI
Android OnItemClickListener not trigger when I use Handler to update UI
我有一个小项目来测试更新 UI 和 OnItemClickListener。
当我更新时ui。 OnItemClickListener 有时不会触发。
如果我更频繁地更新 ui,OnItemClickListener 就会丢失更多次。
mHadler = new Handler();
mHanler.postDelayed(this, 33); // update 33 times per second.
// mHandler.postDelayed(this, 1000); // update 1 times per second.
// never lose onItemClick event.
我的可运行文件
@Override
public void run() {
mText.setText("100");
mImage.setImageResource(R.drawable.some_icon);
mList.notifyDataSetChanged();
mList2.notifyDataSetChanged();
....
}
我的 OnItemClickListener
mList.setOnItemClickListener(this);
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// do something...
// not trigger sometimes.
}
您需要了解 MainThread 上的 运行 代码(又名 - Android 中的 UI 线程)。每秒更新 GUI 33 次会严重影响内存。
研究:
我有一个小项目来测试更新 UI 和 OnItemClickListener。
当我更新时ui。 OnItemClickListener 有时不会触发。 如果我更频繁地更新 ui,OnItemClickListener 就会丢失更多次。
mHadler = new Handler();
mHanler.postDelayed(this, 33); // update 33 times per second.
// mHandler.postDelayed(this, 1000); // update 1 times per second.
// never lose onItemClick event.
我的可运行文件
@Override
public void run() {
mText.setText("100");
mImage.setImageResource(R.drawable.some_icon);
mList.notifyDataSetChanged();
mList2.notifyDataSetChanged();
....
}
我的 OnItemClickListener
mList.setOnItemClickListener(this);
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// do something...
// not trigger sometimes.
}
您需要了解 MainThread 上的 运行 代码(又名 - Android 中的 UI 线程)。每秒更新 GUI 33 次会严重影响内存。
研究: