1
我已閱讀關於停止Runnnable的其他帖子;我很新。如何在程序中停止runnable
我想要一個自定義視圖繪製一個矩形,等一下,然後再繪製一個。爲了弄清楚Runnables是如何工作的,我正在閱讀所有我可以使用Toast來查看重複動作的次數。
我已經得到了一個簡單的工作,如果我通過點擊按鈕或滑動滑塊來停止它。 HOwever,我希望它自己停止。
h = new Handler();
// assorted details -- I'm using a Slider for user input.
public void onStopTrackingTouch (SeekBar firstSlider){
if(((addend1 > 0) && (addend2<0))||(addend1<0&&addend2>0))
{
h.post(shrink);
}
}
});
private Runnable shrink = new Runnable(){
@Override
public void run() {
for (int j = 0; j < 4; j++){
Toast.makeText(getApplicationContext(), "Subtract!", Toast.LENGTH_SHORT).show();
tempadd++;
Log.i("WatchAnimActivity", "tempadd is " + tempadd);
checkTemp();
h.postDelayed(shrink, 18000);
}
}};
public void checkTemp()
{
if (tempadd >= 2)
Log.i("WatchAnimActivity", "tempadd in Check Temp is " + tempadd);
h.removeCallbacks(shrink);}
}
我也試過這樣:
public void checkTemp({ h.removeCallbacks(shrink); }
我無法理解爲什麼Android的似乎是在做「checkTemp」但是......不會刪除回調。停止時,我將第二個SLider設置爲h.removeCallbacks(縮小),並且工作正常。爲什麼它不能h.removeCallbacks,即使它承認tempadd是'方式超過兩個?
希望能在這裏一跛的語法錯誤新手...
謝謝! (新手序列err0r)...一旦我添加條件回來,它表現很好。 – geonz