0

にいくつか問題がありOnTouchListenerます。ユーザーが画面に触れて特定のアクティビティに移動するたびに、それが必要です。問題は、画面に触れると、現在のアクティビティの更新のようなものが行われ、開始されることです (現在のアクティビティには a が含まれてViewFlipperおり、画面に触れるとビューフリッパーが最初から反転し始めます)。2 回目のタッチでのみ、アプリは次のアクティビティに進みます。誰でもこれを解決するのを手伝ってもらえますか?

私の現在の活動は拡張OnTouchListenerし、私は設定myviewflipper.setonTouchListener(this)し、私のonTouch()方法は次のとおりです。

@Override
    public boolean onTouch(View v, MotionEvent event) {
            finish=true;
        Intent intent = new Intent(getBaseContext(), FinishApplication.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
        return true;
    }

画面をタッチすると と が呼び出されonPause()ますonResume()。メソッドでは、いくつかの更新のためにいくつかのタイマーを開始します(更新が行われると、スライドショーが開始されます)。それonResume()が私のアクティビティが更新である理由だと思います。画面がタッチされた後finishにのみ変数ブール値を設定し、タッチされているが機能していない場合にのみ更新を開始します。変数が true に設定されていません。どうすればこれを解決できますか?truefinishfalse

@Override
    protected void onResume() {
        super.onResume();
        System.out.println("OnResume ViewPlaylist!!");
        t = new Timer();
        t.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    public void run() {
                        Imalive();
                    }
                });

            }

        }, 300, 30000);

        if (finish != true) {
            System.out.println("Start update!");
            update = new Timer();
            update.scheduleAtFixedRate(new TimerTask() {

                @Override
                public void run() {
                    runOnUiThread(new Runnable() {
                        public void run() {
                            updateItems();
                        }
                    });
                }

            }, 30000, 20000);
        } else {
            finish = true;
            Intent intent = new Intent(SlideShow.this, FinishApplication.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            finish();


}
}
4

1 に答える 1

0

メソッドを呼び出すことfinish()でこれを解決しonPause()ます。

于 2012-02-20T15:07:28.877 に答える