ディスプレイに触れた場合にのみタイマー行動(OnTouchListener)
-
27-09-2019 - |
質問
タイマーは正常に動作します。問題は、ディスプレイに触れた場合、メソッド_dw.newgame()が実行された場合(2秒が終わった場合)実行されることです。たぶんそれは「OntouchListener」と関係があるのでしょうか?
public class DrawView extends View implements OnTouchListener{
Timer timer = new Timer();
public DrawView(コンテキストコンテキスト){Timer.schedule(new Task(This)、0、2000); } public boolean ontouch(ビュービュー、MotionEventイベント){}}
クラスタスクはTimertaskを拡張します{private DrawView _dw;パブリックタスク(DrawView DW){this._dw = dw;} public void run(){_dw.newgame(); }}
解決
たぶん、あなたはタイマーを開始する必要があります onCreate
方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(Bundle savedInstanceState);
timer = new Timer();
timer.schedule(new Task(this), 0, 2000);
}
ハンドラーで2番目の試み:
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()は一度だけ呼ばれるべきだと思います。
timer.schedule(new Task(this), 0, 2000);それは2秒ごとに行われます。
所属していません StackOverflow