首先,我是 LiveData 的新手。我从android官方网站上找到了这个。
这种行为的一个例外是观察者在从非活动状态变为活动状态时也会收到更新。此外,如果观察者第二次从非活动状态变为活动状态,则仅当自上次激活后值已更改时,它才会收到更新。
我想知道如何检测状态。
public void doLogin(View view){
final LiveData<Pojo> liveData = loginViewModel.checkLoginAndgetUserData(email.getText().toString(),password.getText().toString());
liveData.observe(LoginActivity.this, new Observer<Pojo>() {
@Override
public void onChanged(@Nullable Pojo pojo) {
Boolean isValid = loginViewModel.isValid(pojo);
if(isValid){
Toast.makeText(LoginActivity.this, "Success", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(LoginActivity.this, "Failed", Toast.LENGTH_SHORT).show();
}
}
});
}
这是我的代码。如果用户第一次登录失败并尝试再次登录,则该时间onChanged
方法调用没有数据更改。那个时候吐司又出现了。一段时间后,当网络调用完成时,再次onChanged
调用方法。