ACT TIMER فقط إذا لمس الشاشة (OnTouchListener)
-
27-09-2019 - |
سؤال
المؤقت يعمل بشكل جيد. المشكلة هي أن الطريقة _dw.newgame () فقط يتم تنفيذها (إذا انتهت ثانيتين) إذا لمس الشاشة. ربما يكون من الممكن أن تفعل مع "onTouchListener"؟
public class DrawView extends View implements OnTouchListener{
Timer timer = new Timer();
Public DrawView (Context Context) {timer.schedule (مهمة جديدة (هذا) ، 0 ، 2000) ؛ )
تمديد مهمة الفئة 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);
}
المحاولة الثانية مع المعالج:
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