因此,我已将密码作为哈希存储在共享首选项中,当用户输入密码时,我需要对其进行哈希处理并与存储的密码进行比较。
是否应该在 AsyncTask 或 Thread 中完成,因为计算和比较可能会冻结 UI?然后你知道从异步任务或线程接收结果(真,假)的干净方法吗?
public void startGenerateCode(View view) {
String pinCompare = pin; //pin is class variable obtained from editText
pinCompare = tools.bin2hex(tools.getHash(pinCompare));
if(pinCompare.compareTo(session.getDetails("Pin"))==0){
generateCode();
}
else
Toast.makeText(this, "Wrong PIN", Toast.LENGTH_SHORT).show();
}
public void generateCode(){
Intent i = new Intent(this, GeneratedCode.class);
startActivity(i);
overridePendingTransition(R.anim.right_slide_in, R.anim.right_slide_out);
finish();
}
这是在按下按钮后在活动中完成的。