0
我點擊按鈕加載方法,但它不需要我給予perfrom action的時間。任何人都可以告訴我我做錯了什麼。如何在點擊按鈕後的一段時間加載方法?
這是按鈕的點擊: -
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();
}
}
});
我加載方法verifyResendOtp()爲30 second.but它沒有考慮時間它立即執行。
這是我的方法: -
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