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 次会严重影响内存。

研究: