当应用程序启动时,我会运行自定义弹出窗口,直到用户触摸屏幕。当触摸屏幕时,我通过事件onTouch()捕获它并取消弹出窗口。从这一刻起,我不再需要这个活动了。 问题是事件是活着的,并且每次用户触摸屏幕时都会继续跳起来。 有没有办法取消订阅此活动?类似于c# - = eventName。 代码如下:
@Override
public boolean onTouch(View v, MotionEvent event) {
if (!_stopToast)
{
_hintToast.cancel();
_stopToast = true;
}
return false;
}
答案 0 :(得分:0)
没有这样的方法(比如说, removeTouchListener 或类似方法),它可以帮助您从视图中删除已定义的触摸侦听器。将null
设置为 setOnTouchListener 也无济于事。你可以做的是创建一个OnTouchListener
类的新对象引用,它不执行任何操作并在 setOnTouchListener 中设置它。例如:
public final OnTouchListener dummyOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent rawEvent) {
return false;
}
};
只需使用如下:
yourView.setOnTouchListener(dummyOnTouchListener);