2014-10-29 47 views
0

我想創建一個無限循環,當我釋放按鈕時按下按鈕並停止它,所以我創建了這個按鈕,但是當我釋放按鈕時它不會停止。 .. 你能幫助我嗎?創建一個無限循環並停止它

public boolean onTouch(View v, MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_DOWN) { 

       if (v.getId() == R.id.up) { 

        for(;;){ 
        //make my action      


    if(event.getAction() == MotionEvent.ACTION_UP) { 
          break; 
         } 
         } 
       } 


    } 

     return false; 
} 

} 
+0

它並沒有停止,因爲當你處於無限循環時,消息隊列沒有被處理。這是最終會引發事件的消息隊列,以便它可以由您的處理程序處理。另外,第二個事件不會因爲這個而改變「event」參數,但會引發一個你應該捕獲的新事件。如果這足夠滿足您的需求,我會使用一些計時器,如果沒有更簡單的選項,則可以創建一個線程,但是如果沒有看到無限循環的主體,很難說明問題。 – 2014-10-29 09:51:40

回答

0

無限循環將驅動EventQueue不響應任何其他事件。所以MotionEvent.ACTION_UP也無法處理。您應該使事件處理程序方法更快。否則,事件分派線程可能會掛起。