سؤال

المؤقت يعمل بشكل جيد. المشكلة هي أن الطريقة _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 ثانية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top