Java 仅当我触摸显示屏时计时器才会动作(OnTouchListener)

Java 仅当我触摸显示屏时计时器才会动作(OnTouchListener),java,android,ontouchlistener,Java,Android,Ontouchlistener,计时器工作正常。问题是,如果我触摸显示屏,两秒钟后,方法_dw.newgame就会被执行。也许这和听众有关 也许您应该在onCreate方法中启动计时器: 第二次尝试处理程序: public class DrawView extends View implements OnTouchListener{ private Timer timer = new Timer(); @Override public void onCreate(Bundle savedInstanc

计时器工作正常。问题是,如果我触摸显示屏,两秒钟后,方法_dw.newgame就会被执行。也许这和听众有关


也许您应该在onCreate方法中启动计时器:

第二次尝试处理程序:

public class DrawView extends View implements OnTouchListener{
    private Timer timer = new Timer();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(Bundle savedInstanceState);

        timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                handler.sendEmptyMessage();
            }
        }, 0, 2000);
    }

    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            newgame();
        }
    };
}
我没有编译这个,但它应该是这样工作的。
我注意到另一件事:我想newgame应该只调用一次。每2秒钟做一次。

谢谢,我想是这样,但不是这样:与以前一样,如果新游戏在gui上更改了某些内容,您可以使用处理程序。如果你需要的话,我可以给你举个例子。听起来很清楚。举个例子会很酷。 timer.schedule(new Task(this), 0, 2000);
public class DrawView extends View implements OnTouchListener{
    private Timer timer = new Timer();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(Bundle savedInstanceState);

        timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                handler.sendEmptyMessage();
            }
        }, 0, 2000);
    }

    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            newgame();
        }
    };
}
timer.schedule(new Task(this), 0, 2000);