gpt4 book ai didi

java - 线程中的自定义函数

转载 作者:行者123 更新时间:2023-12-02 07:42:19 25 4
gpt4 key购买 nike

我有一个简单的问题:

我有一个名为 rlMF 的线程。我是这样创建的:

public Thread rlMF = new Thread(new Runnable() {
public void run() {
reloadMissingFiles();
stopTh();
}

public void stopTh() {
activityStopped = true;
}
});

现在我想从外部线程调用 stopTh 函数。为什么我不能简单地调用 rlMF.stopTh();我还能做什么?

示例:

protected void onPause() {
Log.d("Info", "destroying...");
activityStopped = true;
rlMF.stopTh();
super.onPause();
}

不工作...

最佳答案

因为可访问的接口(interface)是来自Thread。为了让您的方法能够从外部访问,您需要指定一个公开此方法的类型。

如果你仔细看一下,该方法是在Runnable实例中实现的。即使在Thread中也不行。

如果您确实需要访问 Runnable 对象,则可以使用类似的内容:

class MyRunnable implements Runnable {
public void run() {
...
}

public void fooBar() {
...
}
}

public void someMethod() {
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
...
myRunnable.fooBar();
...
}

关于java - 线程中的自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11410728/

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