Java 如果我从数据库中得到一行包含Room和LiveData,我怎么能;同步";它是否在UI线程中使用变量?
例如: selectedCode.something()给出了错误,因为selectedCode为null,它没有在另一个线程中初始化,但我不希望整个部分都使用已更改的Observable方法编写。 也许还有别的办法Java 如果我从数据库中得到一行包含Room和LiveData,我怎么能;同步";它是否在UI线程中使用变量?,java,android,android-room,Java,Android,Android Room,例如: selectedCode.something()给出了错误,因为selectedCode为null,它没有在另一个线程中初始化,但我不希望整个部分都使用已更改的Observable方法编写。 也许还有别的办法 public class CodeDetailsActivity extends AppCompatActivity { private Code selectedCode; private CodeRepository mCodeRepository; p
public class CodeDetailsActivity extends AppCompatActivity {
private Code selectedCode;
private CodeRepository mCodeRepository;
private void retrieve(final int id){
mCodeRepository.retrieveCode(id).observe(this, new Observer<Code>() {
@Override
public void onChanged(Code code) {
if (code != null){
selectedCode = code;
}
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_code_details);
retrieveCode(1);
selectedCode.something();
“要写的整个章节”是什么意思?看起来您只需移动seelctedCode.something()
即可进入onChanged()
,在当前selectedCode=code之后代码>行.retrieveCode(1)和selectedCode.something()在if语句中。在这之后还有另一个代码。但也许我会折射一点,这样检查。谢谢