实际上我想禁用一个按钮 30 分钟。
下面的代码运行良好,但如果我们终止应用程序并在 30 分钟内打开它,则该按钮现在已启用。
public static void timmer(final ImageButton btn){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isTimerRunning = false;
btn.setEnabled(true);
}
}, 1800000);
}
现在我在单击按钮时获取系统时间,然后将其添加 30 分钟并将其保存到DataManager
(用户对象的单个类)。再次单击按钮,我将保存时间与当前系统时间进行比较。
@OnClick(R.id.generalReportBtn)
public void setGeneralReport(ImageButton button) {
Log.e("Data Manager Time: ",DataManager.getInstance().getCurrentUser().getLastTime().MINUTE+"");
Log.e("Current Time: ", java.util.Calendar.getInstance().MINUTE+"");
if(DataManager.getInstance().getCurrentUser().getLastTime().after(java.util.Calendar.getInstance())){
DataManager.getInstance().getCurrentUser().lastTime.set(java.util.Calendar.getInstance().YEAR,java.util.Calendar.getInstance().MONTH,java.util.Calendar.getInstance().DATE,java.util.Calendar.getInstance().HOUR_OF_DAY,java.util.Calendar.getInstance().MINUTE,java.util.Calendar.getInstance().SECOND);
DataManager.getInstance().getCurrentUser().lastTime.add(DataManager.getInstance().getCurrentUser().lastTime.MINUTE,30);
}else if(Utilities.isFirstTimePressed){
Utilities.isFirstTimePressed = false;
DataManager.getInstance().getCurrentUser().lastTime.set(java.util.Calendar.getInstance().YEAR,java.util.Calendar.getInstance().MONTH,java.util.Calendar.getInstance().DATE,java.util.Calendar.getInstance().HOUR_OF_DAY,java.util.Calendar.getInstance().MINUTE,java.util.Calendar.getInstance().SECOND);
DataManager.getInstance().getCurrentUser().lastTime.add(DataManager.getInstance().getCurrentUser().lastTime.MINUTE,30);
}else {
Toast.makeText(mainclass,"Button is disabled for 30 minutes",Toast.LENGTH_SHORT).show();
}
}
但是这段代码对我也不起作用。