我有一些设置计时器的代码,但是如果用户在使用计时器时设置了计时器,我需要删除运行计时器的可运行文件并重新启动它。但是,当不存在可运行的处理程序回调并且调用此代码时,它会使我的应用程序崩溃。所以我需要检查处理程序是否正在运行,如果是,则结束它并重新启动它,但是查看文档和其他 Stackoverflow 问题,我看不出这是否可能。
这是我的代码,我已经评论了只有在存在可运行的处理程序时才应该执行的代码:
submitTimer.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
String s = timer.getText().toString();
if(!s.equals(""))
{
//I NEED TO CHECK A RUNNABLE HANDLER EXISTS AND IF SO THEN RUN THIS CODE, IF NOT IGNORE THIS CODE
Map.handler.removeCallbacks(Map.getRunnable());
Map.runnable.run();
//I NEED TO CHECK A RUNNABLE HANDLER EXISTS AND IF SO THEN RUN THIS CODE, IF NOT IGNORE THIS CODE
int l = Integer.parseInt(s);
Map.timerinmins = l;
timer.setHint("Current Timer is "+Map.timerinmins);
timer.setText("");
Toast.makeText(Preferences.this, "Timer is set!", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(Preferences.this, "No value was entered", Toast.LENGTH_SHORT).show();
}
}
});
谁能帮我找出检查处理程序当前状态的方法?