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