成功发布Runnable仅在父项失效时执行

时间:2012-06-28 10:02:31

标签: android android-listview message-queue runnable

我有时遇到以下情况:

  • 我调用View.post(Runnable r)并返回true
  • 调用android.os.Looper.myLooper()。dump(...)时,runnable似乎不在messageQueue中
  • 在主布局上调用invalidate后(例如20秒后),执行Runnable

这种情况时有发生,它发生在多个设备和多个Android版本上。

此问题与Runnable is posted successfully but not runAndroid: Button within ListView not receiving onClick events

类似

有人可以解释在哪种情况下Runnable被发布但是还没有被执行(还)?以及为什么它会在(父)无效后执行。

注意:使用runOnUiThread发布Runnable工作正常,但我不能使用它:我的真正问题是有时OnClickListener没有被调用;这被追踪到View.onTouchEvent中的post(performClick)调用。

我认为我的View层次结构处于一种奇怪的状态,但我一无所知 我的视图是在代码中创建的,大致由

组成

1 个答案:

答案 0 :(得分:0)

这里给出了答案ListView.hasWindowFocus==true but child views hasWindowFocus==false

ListView不喜欢Views的适配器。