我正在后台运行一个包含计时器的线程,我在TextView
中显示此计时器,但当我更改当前片段时,我返回计时器仍在logcat
中运行,但在UI中未更新
我的代码:
final Runnable r = new Runnable() {
public void run() {
if (mBound) {
long elapsedTime = stopWatchService.getElapsedTime();
formattedTime = DateUtils.formatElapsedTime(elapsedTime);
Log.i(TAG, "formattedTime "+ formattedTime);
textView.setText(formattedTime);
}
}
};
Task task = new Task(r);
task.execute((Void) null);
1条答案
按热度按时间km0tfn4u1#
AsyncTask在几年前就被弃用了,恕我直言,这是早就应该的。它有很多问题,就像你正在遇到的那个,只有在一些非常特殊的情况下才真正工作得很好。
还有其他几种方法可以处理这种情况,包括但不限于RxJ、执行器和Kotlin协程。
请查看The AsyncTask API is deprecated in Android 11. What are the alternatives?