我有一些代码可以设置计时器,但如果用户在计时器正在使用时设置了该计时器,我需要移除运行计时器的可运行对象并重新启动它。 但是当没有处理程序回调可运行对象存在且调用此代码时,它会导致我的应用程序崩溃。 因此,我需要检查处理程序是否在运行,如果是,则终止并重新启动它。 但是,在查阅文档和其他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();
}
}
});
有人能帮我找出一种检查处理程序当前状态的方法吗?