次のコードがあります。
    btn.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    v.post(pressed); // put the runnable 'pressed' in the
                                        // asynchrone message queue
                }
                return false;
            }
        });
private Runnable pressed = new Runnable() {
        @Override
        public void run() {
            if (btn.isPressed()) {
                sky.drawEverything();
btn.postDelayed(pressed, 10);
            }
        }
    };
これはAndroid 4.1.2の魅力のように機能しますが、Android 2.3で試してみると、Runnableはトリガーされていないようです。私が使用しているものはすべて api 1 以上ですが、なぜ機能しないのですか?
同じ結果をアーカイブし、古い Android バージョンで動作させる別の方法は何ですか?