0

我想在 satrtactivity 或完成时显示活动动画,但它可能在 TimerTask 线程中无效(我知道它在 UI 线程中工作)

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

任何人都可以解释一下吗?谢谢。

4

2 回答 2

3

你只需使用这个:

    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);
于 2013-08-23T06:27:25.613 回答
1

我也遇到过这个问题,经过一些研究,我找到了一个解决方案并且它正在工作你应该使用 Handler 来解决这个问题

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

我认为它可以帮助你快乐编码

于 2013-08-23T06:05:11.320 回答