ボタンをクリックするだけでメソッドが読み込まれますが、perfromアクションに与えられた時間はかかりません。誰かが何をしているのか教えてください。ボタンをクリックしてしばらくしてメソッドを読み込む方法はありますか?
これは、ボタンのクリックである: - それはそれは即座に実行時間がかかることはありませんsecond.but私は30のための方法verifyResendOtpを()ロード
resand_otp_new.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (VerificationCount < 2) {
if(br != null)
{
br.show();
}
checkotp.setText("");
HashMap<String, String> formData = new HashMap<>();
formData.put("Phone", Phone);
webServiceHandler.requestToServer((getResources().getString(R.string.api_end_point)) + "SendOTPForgetPassword", WebService.ADDLIST, formData, true);
VerificationCount++;
timer.start();
mTvCountDown.setText("00:00:30");
resand_otp_new.setVisibility(View.INVISIBLE);
verifyResendOtp();
} else {
Toast.makeText(v.getContext(), "You Have Used Maximum Chances of OTP !", Toast.LENGTH_SHORT).show();
}
}
});
。
これは私の方法である: - 私はここではなく、あなたがonClickListener内部ハンドラを作成して、実行可能を実装しないでくださいなぜ法、内部のハンドラを実装するよりも、設計ミスがあると思い
private void verifyResendOtp() {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (generalUtilities.isConnected()) {
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(IncominMsg.KEY_PREFERNCE, MODE_PRIVATE);
otpnumber = sharedPreferences.getString(IncominMsg.KEY_OTP, "");
Log.e("otpnumberverifiy....", otpnumber);
checkotp.setText(otpnumber);
HashMap<String, String> formData = new HashMap<>();
formData.put("Phone", Phone);
formData.put("OTP", checkotp.getText().toString().trim());
webServiceHandler.requestToServer((getResources().getString(R.string.api_end_point)) + "CheckOTPForgetPassword", WebService.FORGET_PASSWORD, formData, true);
} else {
generalUtilities.showAlertDialog("HEY USER", "Please Connect To the Internet", getApplicationContext());
}
}
}, 30000);
}
ことの一つは、各ボタンのクリックは、新しい 'Handler'インスタンスを作成して、それゆえ、これを遅延作用をスケジュールするということですアプローチに多少の欠陥があります。 – Shaishav