gpt4 book ai didi

java - 了解 Android 中的 Runnable

转载 作者:行者123 更新时间:2023-12-01 09:48:44 24 4
gpt4 key购买 nike

我正在查看Handlers,其中的post方法接受Runnable类型的参数。我遇到了以下代码 fragment

final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
timeView.clearComposingText();
Integer hours = seconds/3600;
Integer minutes = (seconds % 3600)/60;
Integer secs = seconds % 60;
String time = String.format("%d:%02d:%02d",hours,minutes,secs);
timeView.setText(time);

if(running)
{
seconds++;
}

handler.postDelayed(this,1000);
}
});

既然RunnableJava中的一个接口(interface),我们如何能够直接创建一个新的Runnable实例呢?

最佳答案

匿名类可以实现接口(interface),这是您唯一一次看到实现不带“implements”关键字的接口(interface)的类。

完整的示例可能如下所示:

public class MyClass {

public interface A {
void foo();
}

public interface B {
void bar();
}

public interface C extends A, B {
void baz();
}

public void doIt(C c) {
c.foo();
c.bar();
c.baz();
}

public static void main(String[] args) {
MyClass mc = new MyClass();

mc.doIt(new C() {
@Override
public void foo() {
System.out.println("foo()");
}

@Override
public void bar() {
System.out.println("bar()");
}

@Override
public void baz() {
System.out.println("baz()");
}
});
}

}

这个例子的输出是:

foo()
bar()
baz()

关于java - 了解 Android 中的 Runnable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37771251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com