需要帮助清除活动之间的触摸事件

Som*_*ere 2 android

场景:

有两个活动...活动A有一个图像按钮,用于启动在屏幕上显示活动B的意图.活动B有一个图像按钮来完成()本身并导致活动A被显示.这些按钮位于每个活动的相同位置

问题:

在活动B中,当我双击按钮(而不是单击)时,活动A变为可见但很快再次显示活动B!

第二个触摸事件似乎贯穿于活动A,似乎我可以通过清除活动A的onCreate()中的一些触摸缓冲区来解决这个问题.

如何才能做到这一点?还是有另一个修复?

我在模拟器(2.2)和手机(2.3.3)上重现了这一点

小智 5

我遇到了同样的问题.令人惊讶的是,网上关于此的信息非常少.我的解决方案结合了这个问题的评论和onTouchEvent从未调用过MapActivity:

public class MyActivity extends FragmentActivity {

/** Stores the time (as per SystemClock.uptimeMillis()) of the last
* call to onResume() in order to filter out touch events which occurred before
* the activity was visible. */
private long resumeTime = 0;

@Override
public void onResume() {
    super.onResume();

    resumeTime = SystemClock.uptimeMillis();
}

@Override
public boolean dispatchTouchEvent(MotionEvent event) {
    if (event.getEventTime() < resumeTime) {
    Log.v(TAG, "Discarded touch event with time earlier than onResume()");
    return true;
    }

    return super.dispatchTouchEvent(event);
}
}
Run Code Online (Sandbox Code Playgroud)