2012-12-17 24 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);