gpt4 book ai didi

java - android java同时从不同线程读/写textview

转载 作者:行者123 更新时间:2023-11-30 01:05:11 29 4
gpt4 key购买 nike

我有一个 TextView,它会定期从后台线程更新。

当我尝试从 UI 线程内部使用 myView.getText() 读取它时,很可能会在两次更新之间获取其内容。否则我只会得到 null

是否可以在 TextView(或任何 UI 元素)上使用 synchronized 或 volatile 之类的东西来确保它不能同时从两个线程访问?

编辑(解决方案):按照@ridsatrio 的指示,我创建了以下类:

import android.widget.TextView;

public class SyncTextView {
TextView syncView;

SyncTextView(TextView view) {
this.syncView = view;
}

private synchronized TextView getSyncView () {
return syncView;
}

public CharSequence getText () {
return getSyncView.getText();
}

public void setText (CharSequence text) {
getSyncView.setText(text);
}
}

最佳答案

在我的脑海中,您或许可以定义一个synchronized 方法来访问您想要的View。类似的东西:

public void synchronized TextView getTextViewSynchronizedly() {
// ..return your view here.
}

一旦你定义了这个,确保只允许其他组件通过这个方法访问你的 TextView

关于java - android java同时从不同线程读/写textview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934110/

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