2012-12-17 28 views
0

工作,我想展示活動時,動畫或satrtactivity完成,但它可能在TimerTask的線程無效(I knwon它在UI線程的工作)overridePendingTransition()不TimerTask的

Timer timer = new Timer(); 
timer.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       startActivity(new Intent(myActionAnimation.this,activitytest.class)); 
       overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right); 
      } 
     }, 100); 

可以anyboby解釋?謝謝。

回答

1

我也面臨這個問題,經過一番研究,我發現了一個解決方案,它是工作 你應該使用處理器爲這個喜歡

Handler handler=new Handler(){ 
    public void handleMessage(android.os.Message msg) { 

     startActivity(new Intent(myActionAnimation.this, 
       activitytest.class)); 
     myActionAnimation.this.overridePendingTransition(
       android.R.anim.slide_in_left, android.R.anim.slide_out_right); 
     finish(); 

    }; 
}; 

,並在線程需要調用這個喜歡

Timer timer = new Timer(); 
    timer.schedule(new TimerTask() { 
     @Override 
     public void run() { 
      handler.sendMessage(new Message()); 
     } 
    }, 100); 

我認爲它可以幫助你 編碼快樂

2

您只需使用:

Handler h = new Handler(); 
    h.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      startActivity(new Intent(myActionAnimation.this, 
        activitytest.class)); 
      myActionAnimation.this.overridePendingTransition(
        android.R.anim.slide_in_left, android.R.anim.slide_out_right); 
      finish(); 
     } 
    }, 5000);