我有一個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