不能在onDraw方法中调用removeOnDrawListener。
创始人
2024-12-27 10:00:25
0

在onDraw方法中调用removeOnDrawListener是一个错误的做法,因为在onDraw方法中调用removeOnDrawListener会导致ConcurrentModificationException异常。正确的解决方法是在onDraw方法外部调用removeOnDrawListener。

以下是一个示例代码,展示了如何正确地使用removeOnDrawListener:

// 创建一个自定义的View
public class MyView extends View {

    private OnDrawListener mOnDrawListener;

    public MyView(Context context) {
        super(context);
    }

    public void setOnDrawListener(OnDrawListener listener) {
        mOnDrawListener = listener;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        // 在onDraw方法中调用mOnDrawListener的回调方法
        if (mOnDrawListener != null) {
            mOnDrawListener.onDraw();
        }
    }

    public void removeOnDrawListener() {
        mOnDrawListener = null;
    }

    // 定义一个回调接口
    public interface OnDrawListener {
        void onDraw();
    }
}

在使用上述自定义View的代码中,可以通过调用setOnDrawListener方法来设置OnDrawListener的实例,在需要移除监听器时,调用removeOnDrawListener方法来移除监听器:

// 创建自定义View的实例
MyView myView = new MyView(context);

// 设置监听器
myView.setOnDrawListener(new MyView.OnDrawListener() {
    @Override
    public void onDraw() {
        // 在onDraw方法中的回调逻辑
    }
});

// 移除监听器
myView.removeOnDrawListener();

相关内容

热门资讯

黑科技脚本!智星德州菠萝有辅助... 黑科技脚本!智星德州菠萝有辅助器吗,哈糖大菠萝怎么拿好牌,从前是真的有挂(2021已更新)-哔哩哔哩...
黑科技安卓版!菠萝德州辅助神器... 黑科技安卓版!菠萝德州辅助神器,德扑之星安卓模拟器,最初有挂(2026已更新)-哔哩哔哩;(需添加指...
黑科技ai!菠萝德州辅助神器,... 黑科技ai!菠萝德州辅助神器,德扑计算软件,总是是有挂(2026已更新)-哔哩哔哩1、不需要AI权限...
黑科技ai代打!红龙扑克辅助器... 黑科技ai代打!红龙扑克辅助器功能,菠萝德州偷偷看功能,原先存在有挂(2026已更新)-哔哩哔哩;红...
黑科技脚本!红龙扑克app辅助... 1、黑科技脚本!红龙扑克app辅助器,cloudpoker外挂,原生是有挂(2026已更新)-哔哩哔...
黑科技真的!红龙扑克辅助工具免... 黑科技真的!红龙扑克辅助工具免费下载,德扑ai智能机器人平台安装,起初真的有挂(2020已更新)-哔...
黑科技安卓版!智星德州菠萝辅助... WePoke高级策略深度解析‌;黑科技安卓版!智星德州菠萝辅助器,推扑克辅助器,果然存在有挂(202...
黑科技软件!红龙扑克辅助,聚星... 黑科技软件!红龙扑克辅助,聚星扑克有没有挂,先前有挂(2023已更新)-哔哩哔哩;原来确实真的有挂(...
黑科技工具!智星德州菠萝辅助器... 1、黑科技工具!智星德州菠萝辅助器免费下载,xpoker透视辅助,先前是真的有挂(2021已更新)-...
黑科技辅助!智星菠萝辅助器,g... 黑科技辅助!智星菠萝辅助器,gg扑克发牌是不是有机制,固有真的是有挂(2022已更新)-哔哩哔哩;智...