我是Android的新手,我正在尝试开发一个应用程序。在用户输入用户名和密码后,在登录屏幕中,我想通过查询数据库来检查用户是否已注册。如果该用户已注册,他将被带到主屏幕,如果该用户未注册,则会显示一条消息,提示“该用户未注册”。我正在使用异步任务进行数据库查询,因为即使在异步任务完成之前,即使注册了用户,主线程的执行也会继续执行,但我始终会收到“用户未注册”的消息。但是在调试时,它工作良好。我正在将Room的MVVM模式用于数据库操作。
在主活动中,我正在获取userDetails:
User user = mviewModel.getUser(UserId.getText().toString());
ViewModelClass:
public User getUser(String userid){
return muserRepository.getUser(userid);
}
存储库类:
public User getUser(String userid){
new getUserAsyncTask(muserdao).execute(userid);
return userVal;
}
private class getUserAsyncTask extends AsyncTask<String,Void,User>{
private userDao mgetUserDao;
public getUserAsyncTask(userDao userdao){
this.mgetUserDao = userdao;
}
@Override
protected User doInBackground(String... strings) {
User user = mgetUserDao.getUser(strings[0]);
return user;
}
@Override
protected void onPostExecute(User user) {
userVal = user;
}
请帮助我进行用户验证检查。 谢谢