2012-02-14 25 views
0

OnTouchListenerにいくつか問題があります。ユーザーが特定のアクティビティに行くために画面に触れるたびにその欲しい。問題は、画面に触れると、現在のアクティビティのリフレッシュのようなものが作成され、開始されることです(現在のアクティビティにはViewFlipperが含まれていて、画面に触れたときにviewflipperが最初から反転し始めます)。 2回目のタッチでのみ、アプリは次のアクティビティに進みます。誰も私がこれを解決するのを助けることができますか?OnTouchListenerがうまく機能しない

私の現在の活動は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()メソッドでは、いくつかの更新のためにいくつかのタイマーを開始します(更新が行われるとスライドショーが開始されます)。これが私の活動がリフレッシュされる理由です。変数boolean finishtrueに設定したのは、画面がタッチされた後で、finishfalseの場合にのみ更新を開始しますが、機能していません。変数がtrueに設定されていません。他の考え方はどのように私はこれを解決することができますか?

@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(); 


} 
} 
+0

デバッガでコードを実行しましたか? – WarrenFaith

答えて

0

私はonPause()方法にfinish()を呼び出すことによってこの問題を解決します。

関連する問題