public class TestingActivity extends Activity implements View.OnClickListener
{
ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1);
ScheduledFuture now = null;
public void onCreate(Bundle savedInstanceState)
{
//oncreate
}
public void rollthedice()
{
//rollthedice
}
public void onClick(View view)
{
Runnable runner = new Runnable()
{
public void run()
{
rollthedice();
}
};
if(view.equals(continuous))
{
if(now == null)
now = scheduler.scheduleAtFixedRate(runner, 0, 250, TimeUnit.MILLISECONDS);
else
return;
}
if(view.equals(stop))
{
if(now != null)
{
now.cancel(true);
now = null;
}
else
return;
}
if(view.equals(roll))
rollthedice();
if(view.equals(exit))
System.exit(0);
}
我把它用在一个Java应用程序,它工作得很好,我把它改成Android项目,它不工作,我想连续按钮,连续运行rollthedice()和停止按钮来停止它,然后连续启动再次,停止来回当我按下连续按钮时,为什么不会持续运行?
您是否尝试过调试代码?我不认为你应该在这里使用equals(),简单的==应该足够了 – marcinj
我相当肯定你会发现问题,如果你添加一些日志到你的代码和/或与调试器一步。 – forgemo
好吧我改了==,所以会发生什么是我打滚,它执行rollthedice()一次罚款,如果我打了连续按钮,它似乎什么都不做,但如果我点击滚动按钮,它跳过一个滚动计数,对于执行rollthedice()的次数,所以连续只执行一次rollthedice(),并且执行的次数不会在gui上更新,即使它一次执行也是如此?我想连续运行rollthedice()每秒4次,直到按下停止按钮,一次连续运行rollthedice()不能再次完成,除非停止并再次连续运行 – JRowan