处理程序是抽象的,无法实例化

2022-08-31 10:34:59

我正在尝试在我的应用中使用 。但是,当我像这样实例化它时:Handler

Handler handler = new Handler();

我收到以下错误:

Gradle:错误:处理程序是抽象的;无法实例化

当我检查解决方案时,它要求我实现这些方法:

Handler handler = new Handler() {
    @Override
    public void close() {
        
    }

    @Override
    public void flush() {

    }

    @Override
    public void publish(LogRecord record) {

    }
};

我以前从未使用过,我只是在一段时间延迟后使用它来调用方法。为了实现这一点,我使用了:Handlers

handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            //Do something after 100ms
        }
    }, 100);

但它显示了错误:

Gradle: 错误: 找不到符号方法 postDelayed(,int)


答案 1

似乎您导入了错误的处理程序类

import java.util.logging.Handler;

将其更改为

import android.os.Handler;

答案 2

代替

import java.util.logging.Handler; 

import android.os.Handler;

另外,如果您使用

Handler handler = new Handler() {
    @Override
    public void close() {

    }

    @Override
    public void flush() {

    }

    @Override
    public void publish(LogRecord record) {

    }
};

它会给出错误,布尔发现类似错误,所以要么使用布尔处理程序= new Handler()...或者干脆使用(new Handler()){....'


推荐