首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

帮忙纠错。相关timer的

2012-09-01 
帮忙纠错。。。有关timer的Java codepackage com.example.testontouchimport java.util.Timerimport java.u

帮忙纠错。。。有关timer的

Java code
package com.example.testontouch;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.os.Bundle;import android.view.MotionEvent;  public class MainActivity extends Activity{      private float x = 0;    float y = 0;       Timer timer = new Timer();        TimerTask task = new TimerTask()    {          public void run()        {              while(true)            {                System.out.println(x+"   "+y);            }         }                 };      public void onCreate(Bundle savedInstanceState)     {          super.onCreate(savedInstanceState);           setContentView(R.layout.activity_main);          System.out.println("kaishi");     }          @Override    public boolean onTouchEvent(MotionEvent event)    {        if(event.getAction()==MotionEvent.ACTION_DOWN)        {            x = event.getX();            y = event.getY();            timer.schedule(task,10, 1000);                     }        else if(event.getAction() == MotionEvent.ACTION_UP)        {            timer.cancel();        }        return false;    }} 
为什么我鼠标抬起后,还是不能停止?

[解决办法]
这样改:
首先,在
 private float x = 0;

前面定义一个
private boolean hasLoop = true;

然后,将while(true)这句改为while(hasLoop)

再次,将timer.cancel();改为hasLoop = false;
[解决办法]
测试一下有没有进入 else 块,如果没有试一试return true

热点排行