我正在尝试构建一个SMS应用程序,只需按一下按钮即可发送短信,这部分正在运行,但现在我正在尝试实施垃圾邮件防护.
垃圾邮件保护意味着您每10秒(或更高)只能发送1条短信.
我试过这个:
sentSMS.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Timer timer = new Timer();
int seconds = 10000;
timer.schedule(new TimerTask() {
public void run() {
processClick();
}
}, seconds);
}});
但是当我按两次按钮时,这也不起作用,而SMS也发送了两次.
也许创建一个包含用户必须等待多少秒的吐司也是一个想法,如下所示:
Toast.makeText(getBaseContext(), "Spam protection, wait "+secondstowait,
Toast.LENGTH_SHORT).show();
这一切都有可能吗?
解决方法:
您需要在最后一次单击按钮时存储,然后查看是否已经过了10秒.
long lastTimeSent = 0; //start at 0
sentSMS.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(System.currentTimeMillis() > lastTimeSent + 10000){ //if at least 10 secs has passed from last click
processClick();
lastTimeSent = System.currentTimeMillis(); //last time sent is now current time
}else{
Toast.makeText(getBaseContext(), "Spam protection, please wait.",
Toast.LENGTH_SHORT).show();
}
}});
标签:android,java,onclick
来源: https://codeday.me/bug/20190723/1508909.html