我已经在我的 Android 应用程序中启动了一个线程 - 使用 Java,如下所示
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
Log.d(TAG, "startThread: " + i);
if (i == 5) {
runOnUiThread(new Runnable() {
@Override
public void run() {
buttonStartThread.setText("50%");
}
});
}
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
当这样写时,我如何找到线程何时完成其任务。
最佳答案
最简单的方法是让 Runnable
在完成时调用某个方法,如下所示:
for (int i = 0; i < 10; i++) {
try {
...
} catch (InterruptedException e) {
...
}
}
// notify that I am done
notifyThreadDone();
private void notifyThreadDone() {
// Do whatever you want to do here
}
请注意,notifyThreadDone()
将在另一个线程
上调用,不会在主 (UI) 线程上调用。如果您想对 UI 元素执行某些操作(显示某些内容等),请确保通过将调用包装在 runOnUiThread() 中,在主 (UI) 线程上调用
.notifyThreadDone()
关于java - 如何知道 Android Java 线程何时完成其任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73122272/