我有一个TextView这是从后台线程定期更新。android java从不同的线程同时读取/写入textview
当我尝试从UI线程内部使用myView.getText()
来阅读它时,在两次更新之间获取其内容是偶然的。否则,我只是得到null。
是否可以在TextView(或任何UI元素)上使用类似synchronized或volatile的东西来确保它不能同时从两个线程访问?
EDIT(解决方案):继从@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);
}
}
我喜欢你和那个装饰者一起去的方式。 – ridsatrio