Android Fragments AsyncTask在销毁后未更新恢复片段中的文本视图

bmp9r5qi  于 2022-12-19  发布在  Android
关注(0)|答案(1)|浏览(142)

我正在后台运行一个包含计时器的线程,我在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);
km0tfn4u

km0tfn4u1#

AsyncTask在几年前就被弃用了,恕我直言,这是早就应该的。它有很多问题,就像你正在遇到的那个,只有在一些非常特殊的情况下才真正工作得很好。
还有其他几种方法可以处理这种情况,包括但不限于RxJ、执行器和Kotlin协程。
请查看The AsyncTask API is deprecated in Android 11. What are the alternatives?

相关问题