2012-02-14 404 views
0

我有一些問題OnTouchListener。我希望每次用戶觸摸屏幕前往某個活動。問題在於,當我觸摸屏幕時,它會爲當前活動做一些類似刷新的事情,並且它會啓動(當前活動包含ViewFlipper,當觸摸屏幕時,視圖快速啓動將從開始翻轉)。只有第二次觸摸應用才能進行下一個活動。任何人都可以幫我解決這個問題嗎?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()方法中,我啓動一些定時器進行一些更新(更新完成後,幻燈片將開始播放),我認爲這就是我的活動刷新的原因。我只在屏幕觸摸後才設置變量布爾值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 2012-02-20 10:33:38

回答

0

我通過onPause()方法調用finish()解決這個問題。