そのため、共有設定にパスワードをハッシュとして保存しました。ユーザーがパスワードを入力したら、そのハッシュを作成して、保存されているものと比較する必要があります。
計算と比較によってUIがフリーズする可能性があるため、AsyncTaskまたはThreadで実行する必要がありますか?そして、asynctaskまたはthreadから結果(true、false)を受け取るクリーンな方法を知っていますか?
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();
}
これは、ボタンが押された後のアクティビティで実行されます。
ゾロ、
このプロセスはButton
、ログインなど、誰かがを押したときにトリガーされると思います。微積分Thread
を処理するために余分なものは必要ないと思いますHash
。
その後、サーバーに接続してデータを送受信する必要がある場合は、非同期フローのためにそれを使用する必要があります。
メイン投稿へのコメントへの返信:はい、でアクティビティを開始できますonPostExecute
。
コード例:
public void startGenerateCode(View view) {
// Disable button
Button button = (Butto) view;
button.setEnabled(false);
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 {
// If the login fails, re-enable the button to try again
button.setEnabled(true);
Toast.makeText(this, "Wrong PIN", Toast.LENGTH_SHORT).show();
}
}
心からやったので、間違いがあるかもしれません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加